Anchor不能与javascript一起工作
问题描述:
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);
}
答
你的脚本工作对我来说:刚才试过现在这个网页
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的一个众所周知的和支持的功能(甚至*上依赖于他们产生指向特定的答案)。
但是你让他们的使用是很“边缘”:我提出的代码段是一个黑客,而不是一个典型的解决方案,你可能期望跨浏览器的行为不一致。
现在让我给一些上下文你原来的问题:
这似乎你需要重新加载页面是一些数据发送到服务器和原因(最终)上表现出一定的变化该页面的内容。
如果你必须这样做,自十年左右,有ajax。
您将数据发送到服务器,并等待(asyncronously)其他输出数据从服务器返回的,然后以编程更改应用到该页面。
这为用户提供了一个更好的界面体验,最终的结果是一致的。
现在你有一个“体面的”解决方案。我建议你考虑ajax(最终借助jQuery库),以便将来改进您正在使用的网站或将来的项目。
此锚应该完成什么? – Harangue
你是否从你的代码中调用了'hash_test()'函数? –
为什么页面需要重新加载?没有这些信息,这听起来像一个XY问题http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem –