Подтвердить что ты не робот

Jquery select iframe children

Я использую библиотеку editArea и jquery, чтобы делать то, что мне нужно...

http://www.cdolivet.com/index.php?page=editArea&sess=2b8243f679e0d472397bfa959e1d3841

поэтому в моем html есть тег iframe, который editArea использует то, что мне нужно, это получить доступ к чему-то подобному с помощью jquery

$('iframe textarea').keydown(function (e){
   number = 17; //any number really :)
    if(e.which == number){
        //do something...
        alert('Done...');
    }
});

Я попробовал это, но похоже, что он не обнаруживает этот ключ. но он работает, если селектор был $(document) поэтому остальная часть функции работает, она просто не подхватывает iframes textarea keydown

любые идеи? Благодаря

4b9b3361

Ответ 1

$("iframe").contents().find("textarea").keydown(...)

Ответ 2

Вам нужно выполнить поиск внутри внутреннего document iframe, чтобы получить элемент textarea:

var textarea = $('textarea', $('iframe').get(0).contentWindow.document);
textarea.keydown(function (e){
   var number = 17;
   var code = (e.keyCode ? e.keyCode : e.which);

    if(code == number){
        //do something...
        alert('Done...');
    }
});

Ответ 3

Вы можете путешествовать на любом уровне. Вышеуказанные ответы верны. Я сделал это ниже

var iframeMain = $("#iframe0").contents().find('#iframeMain');
var detailsForm = $(iframeMain).contents().find('#detailsform');

для доступа к родителям вы можете использовать

window.parent.parent. // upto any level 

Ответ 4

Вам нужно получить доступ к iframes contentWindow.document, а не к самому iframe.

Ответ 6

Вы должны делать


iframeDoc = document.getElementById('resultsFrame').contentWindow;
// result frame is id of iframe
$(iframeDoc).keydown(function(e))
{
// your functionality here
}

Ответ 7

Если все остальное не удается, я закончил работу над этим, обернув эту функцию:

$(window).blur(function () {
  // genius code here
}