当我第一次登陆主页时,提琴手显示iframe网站加载一次。当我F5或点击返回页面时,它似乎加载了两次网站。
Fiddler表示第一次有一个符号表示它已中止。
解释图像上的点
我的IFrame看起来像这样:
<div class="IframeContainer">
<iframe class="IframeContent" ng-src="{{::trustSrc(ActiveLink)}}" iframe-onload="iframeLoadedCallBack()" frameborder="0" scrolling="no"></iframe>
</div>
我是ActiveLink上的观察者,它只从未定义更改为定义一次。 但是,我已将日志记录添加到函数trustSrc,它似乎被调用了3次。我还不知道为什么。
Iframe作为模板URL添加到app.js中:
.state('Retrieved', {
url: '/Retrieved',
templateUrl: 'Scripts/AngularJs/Views/_GenericIframeContainer.html'
})
我认为因为iframe使用的是ng-src,变量会经过摘要周期并被评估。可能是这次评估导致iframe重新加载吗?
答案 0 :(得分:-1)
修复是改变我们使用的角度JS(版本1.4.9)文件。在20365行附近,我们更换了以下内容
RewriteEngine On
RewriteRule ^(.*).html$ /content/themes/MrOSX/pages/(.*).php [L]
(增加10毫秒延迟)
attr.$set(name, value);
我们也改变了
setTimeout(function () {
attr.$set(name, value);
}, 10);
<强>与强>
if (msie && propName) element.prop(propName, attr[name]);
所以这可能是IE唯一的问题。相同的代码在AngularJS 1.6.4
中似乎问题在这里解决了:https://github.com/angular/angular.js/issues/9843但修复程序没有到位IMO。