【问题标题】:In IE11, event is not firing in javascript在 IE11 中,事件未在 javascript 中触发
【发布时间】:2018-06-28 17:00:26
【问题描述】:

尝试不工作,这是 Ie9 与 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>

【问题讨论】:

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


【解决方案1】:

与检查 &lt;iframe&gt; 的就绪状态更改相关的属性和事件已被 Internet Explorer 11停止

总结如下:

“MSDN readyState 属性文档指向 (on)readystatechange 事件文档,其中明确指出 iframe 支持这些东西。但它显然不再适用于 IE11。看起来 IE11 遵循 W3C 规范特别的东西。这个规范显示了全局属性和事件。(readyState/readystatechange 不是全局的,只命名documentmedia 元素)。这个规范显示iframe 实现load/onload,但不是readyState 属性或readystatechange 事件)。” [4]

“关键是onreadystatechange 事件自古以来就没有被 W3C 采用!结果:IE11 终于放弃了它!” [4]

另请注意,在尝试访问框架时,由于安全性和跨域限制,不建议在 iframe 上动态附加事件。 [5]

示例

以下代码在 IE11 中有效,当&lt;iframe&gt; 加载时会产生警报。

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

来源

文档

论坛问题

堆栈问题

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多