iframe中有一个与angularjs http服务一起使用的页面。它会加载一些数据并为页面中的每个 li 添加ID。所以最终的html页面如下所示:
<li id="1000" ....>....</li>
<li id="1001" ....>....</li>
<li id="1002" ....>....</li>
<li id="1003" ....>....</li>
..
..
<li id="1020" ....>....</li>
这个页面在iframe中,所以我将滚动父iframe,如下所示:( $ scope.mid以li的id退出)
$q.all(promises)
....
})).then(function() {
$("#divLoading").hide();
var iframe = parent.document.getElementById("ConverstionsListFrame");
iframe.location.replace(iframe.contentWindow.location + '#' + $scope.mid);
...}
所以上面的代码在IExplorer中运行正常,但它在firefox中崩溃,有时它工作,有时没有! 问题出在哪儿 ?我想也许firefox渲染队列与IE不同,导致iframe找不到锚ID,因为它还没有退出!请带我解释一下这个问题。
提前致谢....
答案 0 :(得分:0)
该指令将解决这个问题......
.directive('onLastRepeat', function () {
return function (scope, element, attrs) {
if (scope.$last) setTimeout(function () {
var iframe = parent.document.getElementById("ConverstionsListFrame");
iframe.contentWindow.location.replace(iframe.contentWindow.location + '#' + scope.mid);
}, 1);
};
})