在IE11中,事件不是在javascript中触发

时间:2014-11-10 00:04:38

标签: javascript internet-explorer internet-explorer-11

尝试不工作这是一个兼容性问题Ie9 vs IE11:

<iframe name="testwindowframe" id="testwindowframe" Onload="readyStateChange()" width="100%" height="90%"></iframe> 

实际JSP:请查找使用的详细信息:WHERE IFRAME AND SCRIPTS这是IE11中的兼容性问题。我在readyStateChange()中放置了一个断点,但它没有触发。

<script language="javascript">
    function readyStateChange() {
        console.log('REACHED!');
    }
</script>

<iframe name="testwindowframe" id="testwindowframe" onreadystatechange="readyStateChange()" width="100%" height="90%"></iframe>

2 个答案:

答案 0 :(得分:5)

与检查<iframe>的就绪状态更改相关联的属性和事件已被Internet Explorer 11 停用

以下总结了这一点:

  

“MSDN readyState属性文档指向(on)readystatechange事件文档,它明确指出iframe支持这些内容。但它显然不再使用IE11。看起来IE11正在关注W3C针对此特定内容的规范。此规范显示了全局属性和事件。(readyState / readystatechange不是全局的,仅命名documentmedia元素。。此规范显示iframe实施load / onload,但不是readyState属性或readystatechange事件。“ [4]

     

“重点是W3C自从多年以来没有采用onreadystatechange事件!结果:IE11终于放弃了它!” [4]

另请注意,由于尝试访问帧时的安全性和跨域限制,在iframe上动态附加事件是不可取的。 [5]

实施例

此代码如下代码在IE11中运行,它会在<iframe>加载时产生警告。

function readyStateChange() {
    alert('The document ready state is "' + document.readyState + '".');
}
<iframe name="pdfFrame" id="pdfFrame" onReadyStateChange="readyStateChange()" width="100%" height="90%"></iframe>

来源

文档

论坛问题

Stack Questions

答案 1 :(得分:0)

尝试在document.ready中编写函数readyStateChange()