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 }