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

jac*_*ack 1 javascript internet-explorer internet-explorer-11

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

<iframe name="testwindowframe" id="testwindowframe" Onload="readyStateChange()" width="100%" height="90%"></iframe> 
Run Code Online (Sandbox Code Playgroud)

实际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>
Run Code Online (Sandbox Code Playgroud)

Mr.*_*irl 5

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

以下总结了这一点:

"MSDN readyState属性文档指向(on)readystatechange事件文档,它明确指出iframe支持这些东西.但它显然不再使用IE11.看起来IE11遵循W3C规范这个特殊的东西.这个规范显示了全局属性和事件.(readyState/ readystatechange不是全局的,仅命名documentmedia元素.)此规范显示iframeimplements load/ onload,但不显示readyState属性或readystatechange事件." [4]

"重点是onreadystatechangeW3C自年龄以来没有采用该事件!结果:IE11终于放弃了它!" [4]

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

此代码如下代码在IE11中工作,它将在<iframe>加载时产生警报.

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

来源

文档

论坛问题

堆栈问题