2016-02-29 48 views
-1

Ancor不能与javascript一起使用。Anchor不能与javascript一起工作

当我使用URL加载我的页面时,锚点起作用。 当我把它作为例子设置它。页面正在加载,但锚点不起作用。 (顺便说一句:为了我的目的,它的姊妹重新加载发生)。

这里我的脚本(评论什么,我想)..和actualy我想更多...

function hash_test() { 
    href = window.location.href; 
    alert(href);  
    if (href.lastIndexOf('#') > 0){ //remove hash if present 
    href = href.substring(0,href.lastIndexOf('#'));  
    } 
    alert(href); 
/* window.location.href = href; 
    window.location.hash = '#beitrag9';*/ // does not work to 
    window.location.href = href +'#beitrag9'; 
    window.location.reload(true); 
} 
+2

此锚应该完成什么? – Harangue

+0

你是否从你的代码中调用了'hash_test()'函数? –

+0

为什么页面需要重新加载?没有这些信息,这听起来像一个XY问题http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem –

回答

1

你的脚本工作对我来说:刚才试过现在这个网页

function hash_test() { 
    href = window.location.href; 
    alert(href);  
    if (href.lastIndexOf('#') > 0){ //remove hash if present 
    href = href.substring(0,href.lastIndexOf('#'));  
    } 
    window.location.href = href +'#35711597'; 
    window.location.reload(true); 
} 

粘贴在控制台的功能和调用hash_test()重新打开这个页面,让我在这里,在这个答案。

也许在某些情况下(页面重载不会在直接用户交互occurr),或在某些浏览器不工作。

您可以尝试然后强制页面总是在编程的onload这个在标题的底部滚动到锚。

<script> 
    window.onload=function() 
    { 
     var href, 
      hash; 

     href = window.location.href; 
     if(href.lastIndexOf('#') != -1) 
     { 
      hash = href.substring(href.indexOf('#')); 
      if(hash.lastIndexOf('?') != -1) 
      { 
       // cut away query string as well (if present) 
       hash = hash.substring(0, hash.indexOf('?')); 
      } 
      window.location.hash = hash; 
     } 
    }; 
</script> 

底线:

锚HTML的一个众所周知的和支持的功能(甚至StackOverflow上依赖于他们产生指向特定的答案)。

但是你让他们的使用是很“边缘”:我提出的代码段是一个黑客,而不是一个典型的解决方案,你可能期望跨浏览器的行为不一致。

现在让我给一些上下文你原来的问题:

这似乎你需要重新加载页面是一些数据发送到服务器和原因(最终)上表现出一定的变化该页面的内容。

如果你必须这样做,自十年左右,有ajax

您将数据发送到服务器,并等待(asyncronously)其他输出数据从服务器返回的,然后以编程更改应用到该页面。

这为用户提供了一个更好的界面体验,最终的结果是一致的。

现在你有一个“体面的”解决方案。我建议你考虑ajax(最终借助jQuery库),以便将来改进您正在使用的网站或将来的项目。

+0

谢谢保罗...这对我的testscript工作..现在我尝试在我的页面 – ratmalwer

+0

祝你好运。希望能帮助到你。 – Paolo

+0

嗨保罗 - 简短的回应:它在FF和克罗姆工作,但在IE11有点sh but,但我会忍受它... – ratmalwer