锚不使用javascript

锚不使用javascript,javascript,Javascript,或不使用javascript 当我加载带有URL的页面时,锚定会起作用。 当我以javascript为例进行设置时。页面正在加载,但锚不起作用。 (顺便说一句:就我而言,重新装载是必要的) 这里是我的脚本(注释我尝试的内容)。。事实上我试了很多 function hash_test() { href = window.location.href; alert(href); if (href.lastIndexOf('#') > 0){ //remo

或不使用javascript

当我加载带有URL的页面时,锚定会起作用。 当我以javascript为例进行设置时。页面正在加载,但锚不起作用。 (顺便说一句:就我而言,重新装载是必要的)

这里是我的脚本(注释我尝试的内容)。。事实上我试了很多

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()
重新打开此页面,我将看到此答案

可能在某些情况下(直接用户交互时不会重新加载页面)或在某些浏览器上无法工作

然后,您可以尝试强制页面在加载时始终以编程方式滚动到锚定,并在标题底部显示锚定

<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>

window.onload=function()
{
var href,
搞砸
href=window.location.href;
如果(href.lastIndexOf('#')!=-1)
{
hash=href.substring(href.indexOf(“#”);
if(hash.lastIndexOf(“?”)!=-1)
{
//切掉查询字符串(如果存在)
hash=hash.substring(0,hash.indexOf('?');
}
window.location.hash=散列;
}
};

底线:

锚定是HTML的一个众所周知且受支持的特性(即使StackOverflow也依赖于锚定来生成指向特定答案的链接)

然而,您对它们的使用是相当“边缘化”的:我提出的代码片段是一种黑客行为,而不是一种规范的解决方案,您可能会期望跨浏览器的行为不一致

现在让我试着为你最初的问题提供更多的背景:

您需要重新加载页面的原因似乎是向服务器发送一些数据,并(最终)显示页面内容的一些更改

如果必须这样做,大约十年后,就有了ajax

将数据发送到服务器,等待(异步)其他输出数据从服务器返回,然后以编程方式将更改应用到页面

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


现在你有了一个“体面”的解决方案。我建议您考虑<强> Ajax <强>(最后借助JQuery库)来为您正在工作的站点或将来的项目做进一步的改进。

这个锚应该完成什么?您从代码中调用了<代码> HasyTestTo()/<代码>函数吗?为什么页面需要重新加载?如果没有这些信息,这听起来像是XY问题。你的意思是页面会重新加载,但内容不会滚动到锚点的位置。
beitrag9
?是的,保罗-这就是问题所在!谢谢你,保罗。。。这在我的测试脚本上起作用。。现在我在我的pageHi Paolo中尝试了它-简短回应:它在FF和Crome中有效,但在IE11中有点糟糕,但我会接受它…@ratmalwer-我编辑了答案-查看我的底线。Hi Paolo-你是对的。-当我用Ajax操纵这个项目时,我考虑你的建议…谢谢你是个好人!