window.frames [0] .document.onkeydown无法在Firefox中运行

时间:2012-01-09 09:47:27

标签: javascript firefox onkeydown

我的这行不适用于Firefox(在IE和Chrome中运行得非常好)

ste.frame.document.onkeydown=function(e) {
    alert('a');
};

这里ste.frame是一个窗口对象[对象窗口]。我试过了

window.frames[0].document.onkeydown=function(e){
    alert('b');
}

还在IE和Chrome中工作,而不是在Firefox中工作。我猜如果第二个有效,第一个也可以。

有谁知道如何解决这个问题? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您在上述评论中发布的代码无效,因为您在子帧完成加载about:blank文档之前设置了侦听器。所以你要在临时文档上设置一个监听器,然后就会消失。

Gecko很可能会在某些时候更改行为,以便更接近你在IE和WebKit中看到的内容,因为HTML5规范实际上定义了如何:空白应该表现....

答案 1 :(得分:0)

我花了将近一个小时才找到解决方案,但我做不到。我认为原因是,Mozilla基础已经实现了IFrame对象的基础知识,因此您无法分配事件处理程序。与eventhandler相比,您可以修改css样式(请参阅此example)。

  

window.frames [0] = .document.onkeydown函数(e)中{       警报( 'B'); }

我使用DOM-Inspector来确定此代码指向的对象。在我看来,它指向了Firefox的DOM的全局对象。

PS:如果我错了,请纠正我。