iframe 导航到书签位置在 Firefox 中不起作用

Posted

技术标签:

【中文标题】iframe 导航到书签位置在 Firefox 中不起作用【英文标题】:iframe navigate to bookmark position not working in firefox 【发布时间】:2015-01-27 19:02:06 【问题描述】:

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 exits in li's 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】:

这个指令将解决这个问题...

.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);
        ;
    )

【讨论】:

以上是关于iframe 导航到书签位置在 Firefox 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Firefox沙箱iframe位置在不应该发生变化时发生变化

当用户在 iframe 中导航时,强制 iframe 的父页面自动滚动到顶部?

如何在Firefox中导入chrome的书签?

Firefox 在页面刷新时重新发布到 iframe

Firefox恢复书签

从子报表导航到父书签