0

我的这条线在 Firefox 中不起作用(在 IE 和 Chrome 中完全正常)

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

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

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

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

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

4

2 回答 2

2

您在上面的评论中发布的代码不起作用,因为您在子框架完成加载其 about:blank 文档之前设置了侦听器。所以你在一个临时文档上设置了一个监听器,然后就消失了。

由于 HTML5 规范实际上定义了 about:blank 的行为方式,Gecko 可能会在某些时候改变此处的行为以更接近您在 IE 和 WebKit 中看到的内容。

于 2012-01-09T13:44:39.510 回答
0

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

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

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

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

于 2012-01-10T09:34:19.210 回答