使用JQuery将事件处理程序添加到iframe

时间:2009-02-14 18:19:56

标签: javascript jquery events iframe keydown

我想将一个keydown事件处理程序分配给iframe。类似纯JS的东西:

document.getElementById('iframe_id').contentWindow.addEventListener('keydown',funcName, true);

我试过了:

$(document.getElementById('iframe_id').contentWindow).keydown( function() {
   // my func
});

但它不起作用..请帮忙!

4 个答案:

答案 0 :(得分:15)

contentWindowiframe的{​​{1}}对象。您想要window的{​​{1}}代替:

iframe

请注意,我不确定jQuery如何对来自其他窗口/框架的元素做出反应。

答案 1 :(得分:4)

需要注意的是:如果iframe内容是跨域的,那么根据我的理解,这将无法运行。您最终会遇到权限错误:http://...权限被拒绝从http://...获取属性HTMLDocument.nodeType。浏览器将父子dom权限限制为同一域。

答案 2 :(得分:0)

$ function取代了对document.getElementById

的需求
$('iframe_id').contentDocument.keydown(function() {
   // logic
});

答案 3 :(得分:0)

这对我有用:

$('#iframe_id').contents().keydown(function() {
    // my func
});