gpt4 book ai didi

javascript - 动态创建的 iframe 的 onload 事件永远不会在 IE 中触发

转载 作者:搜寻专家 更新时间:2023-11-01 04:37:00 24 4
gpt4 key购买 nike

当我动态创建 iframe、将其源设置为 pdf 并将其附加到文档时,我遇到了 IE 的问题,即 iframe 的“onload/load”事件不会触发

我需要监听该事件的原因是因为我需要隐藏 iframe 直到框架加载完毕,然后使用一些效果使其淡入 View 。

我已经在我测试过的每个浏览器(Chrome、Firefox、Safari、移动版 Safari)中使用它,但它在 IE8->IE11 中不起作用。

我看过很多关于 IE 如何不触发 onload 事件的帖子,根据我收集到的信息,以下内容应该有效:

// listen for when the iframe's content has been loaded...
if (window.addEventListener)
iframe.addEventListener("load", framedContentLoaded, false);
else if (window.attachEvent)
iframe.attachEvent("onload", framedContentLoaded);
else
iframe.onload = framedContentLoaded;

但是,我的函数 framedContentLoaded 从未在 IE 中触发。

我创建了一个重现问题的 fiddle :http://jsfiddle.net/s5TUU/

最佳答案

我遇到了同样的问题,我正在使用浏览器检测和 onreadystatechange 事件来满足 IE 的需求,但随后它停止为 IE11 工作。

This bug has been reported并且提到了一个解决方法。

解决方法是将 pdf 放入带有 iframe 的 html 页面,然后将该 html 页面加载到您的主 iframe 中。您将拥有嵌套的 iframe,它不是很漂亮,但似乎可以很好地与 IE 配合使用。您将使用 onload 事件,这使其成为跨浏览器解决方案。您需要使父 iframe 和子 iframe 的大小相同,并禁用父 iframe 上的滚动条,这样您就不会得到双滚动条。

在我的例子中,我使用的是 ASP.Net MVC,我将我的父 iframe src 设置为使用作为 url 参数传递的 pdf url 调用 Controller 操作。该操作正在返回一个带有子 iframe 的 View ,并将 pdf 分配给它的 src。

关于javascript - 动态创建的 iframe 的 onload 事件永远不会在 IE 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com