iframe导航到不在Firefox中工作的书签位置

时间:2014-11-29 07:58:25

标签: javascript jquery angularjs firefox iframe

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,因为它还没有退出!请带我解释一下这个问题。

提前致谢....

1 个答案:

答案 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);
        };
    })