jqueryselectiframe的孩子

我正在使用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...'); } }); 

我试过以上,但它看起来像不是检测到该键。 但它的工作原理是如果select器是$(文档),因此该函数的其余部分工作,它只是它没有拿起iframes textarea keydown

有任何想法吗? 谢谢

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

您需要在iframe的内部document中search,以获取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...'); } }); 

你可以旅行任何级别,上面的答案是正确的。 我做了如下

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

访问您可以使用的父母

 window.parent.parent. // upto any level 

您需要访问iframes contentWindow.document ,而不是iframe本身。

那么,这是你想要的:

链接到简单的教程

你应该做的

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

如果一切都失败了,我最终通过包装在这个函数中得到了上面的工作:

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