谷歌Chrome/Safari浏览器的onload bug



我有各种链接打开bootstrap modals。有些模态打开时只含有简单的html,有些则含有iframe

我使用ng-switch来确定要加载到模态中的内容类型。此问题仅发生在Google Chrome和Safari(即webkit浏览器)。

我在iframe中使用onload来调用一个函数,一旦iframe实例化。

<div class="modal-body" ng-switch="modal.type">
   <div ng-switch-when="iframe">
      <iframe ng-src="http://plunker.co/group" onload="callMeMaybe();"></iframe>
   </div>
   <div ng-switch-when="html">
      <h1>I'm just plain ol' html up in here.</h1>
   </div>
</div>

问题: Chrome和Safari调用onload函数两次。而Firefox和IE只调用一次函数。

我能做些什么来防止这种行为在Chrome/Safari?

这是一个活塞

显然,在webkit浏览器上,iframe上的onload事件触发两次。第一次是在创建iframe时,第二次是在设置src时。

根据这个答案:https://stackoverflow.com/a/15880489/3170216

如果在iframe元素被附加到body的之后附加onload事件,可以防止这种行为。但我不知道在你这种情况下该怎么做。

最新更新