Google Chrome / Safari中的onload错误

时间:2014-03-28 19:55:42

标签: javascript angularjs twitter-bootstrap iframe webkit

我有各种打开bootstrap modals的链接。一些模式在内部使用简单的html内容打开,其他模式包含iframe

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

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

<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中阻止此行为?

这是plunkr

1 个答案:

答案 0 :(得分:4)

显然,在webkit浏览器上,iframe上的onload事件会触发两次。一旦创建了iframe,然后设置了src。

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

如果在元素附加到正文后附加onload事件,则可以阻止此行为。但我不确定如何在你的情况下这样做。