添加dom元素后,chrome / opera锚移开

时间:2013-03-30 00:12:21

标签: html google-chrome dom anchor opera

说我有一个网址:http://rythmengine.org/doc/expression.md#transformer

加载页面后,立即正确显示锚点,但是我有一个脚本可以自动在页面上添加一些iframe,chrome / opera稍后将从锚点#comment,firefox和IE转移(10)都很好。

知道如何在Chrome / opera中修复它吗?

2 个答案:

答案 0 :(得分:3)

我不知道我是否会实现这一点,因为iframe确实需要花费相当多的时间来加载,并且用户可能已经在页面上滚动并且回到了哈希元素但这里是一个解决方案我想出了使用jQuery。

由于iframe在最初加载后会在文档中被替换,因此您可以使用.load()函数,如果您只是在文档中使用它,它通常不会触发。

<{3}}和this page上的

演示

只需将此jQuery代码添加到脚本代码中,您可以在其中替换所有pre code

<强>代码:

$('iframe').load(function() {
    moveToHash();
});

// Scroll to the url hash element
function moveToHash()
{
    var hashElem = $(window.location.hash);

    // If the hash elment exists
    if(hashElem.length)
    {
        window.scrollTo(hashElem.position().left, hashElem.position().top);
    } 
}

编辑:在代码中出现了一些错误和不必要的错误。

答案 1 :(得分:1)

当每个iframe结束加载时告诉浏览器转到那个哈希

$('iframe').load(function() {
    document.location.href = document.location.hash;
});