<a 标签的内部 href 现在刷新页面
Internal href of <a tag now refreshes the page
我有几个指向内部 link 的锚标记,主要用于滚动到某些部分标题或从网站底部 link 到达顶部,因为某些页面可以很长。
像 <a href="#whatever">Whatever</a>
这样的所有标签直到昨天才按预期将页面滚动到 <a name="whatever"></a>
标签,但现在当点击它们时,它们会强制页面刷新指向根页面,就像这样localhost/#whatever
而不是这个 localhost/path/to/current/page/#whatever
.
1) 是否有可能更改 Apache 服务器、浏览器设置(不强硬)、HTML/JavaScript/CSS 页面代码或在单击内部 [=38] 时强制刷新页面的任何内容=]s?
2) 如果我将锚点更改为 <a href="path/to/current/page/#whatever>
它会起作用,但这只是因为页面刷新触发,然后在解释哈希片段时页面像正常一样滚动。此外,通过这种方式,我丢失了我真正需要的任何 GET 参数(我无法预测它们),因为它是一个数据库网站
3) 如果我更改或删除 <base href="/" />
标签,什么也不会发生,内部 link 仍然可以使用该标签
4) 我最近更新了 .htaccess 文件,这可能是原因,但路由仍然没有问题,我不明白为什么 RewriteRule
可能会影响内部 links .此外,尝试将其恢复到以前的版本也没有帮助
5) 相同的行为适用于 Firefox 和 Chrome,最新版本
6) 我试图在相同的环境(相同的 .htaccess,相同的 HTML 基本模板)中创建一个测试页面,其中只有一个很长的 <ul>
列表,其中包含按顺序排列整数的列表元素直到 500,然后在页面底部出现一个 <a href="#20">To 20</a>
,一切正常...什么可以强制内部 link 重定向?!请帮助
我终于解决了!在这里查看 link and here link。问题出在 <head>
部分中的 <base href="/" />
标记。我用 jQuery 和纯 JavaScript 的混合解决了(jQuery 仅用于 select 锚点和获取属性),这里
$("a.local").on("click", function (e) {
e.preventDefault();
document.location.hash = "";
document.location.hash = $(this).attr("href");
});
请注意,在实际将其设置为锚点的 href 之前,我需要将哈希值设置为一个空字符串,因为 document.location.hash = $(this).attr("href");
本身不会在多次点击内部锚点时触发自动滚动(我试过它)
我有几个指向内部 link 的锚标记,主要用于滚动到某些部分标题或从网站底部 link 到达顶部,因为某些页面可以很长。
像 <a href="#whatever">Whatever</a>
这样的所有标签直到昨天才按预期将页面滚动到 <a name="whatever"></a>
标签,但现在当点击它们时,它们会强制页面刷新指向根页面,就像这样localhost/#whatever
而不是这个 localhost/path/to/current/page/#whatever
.
1) 是否有可能更改 Apache 服务器、浏览器设置(不强硬)、HTML/JavaScript/CSS 页面代码或在单击内部 [=38] 时强制刷新页面的任何内容=]s?
2) 如果我将锚点更改为 <a href="path/to/current/page/#whatever>
它会起作用,但这只是因为页面刷新触发,然后在解释哈希片段时页面像正常一样滚动。此外,通过这种方式,我丢失了我真正需要的任何 GET 参数(我无法预测它们),因为它是一个数据库网站
3) 如果我更改或删除 <base href="/" />
标签,什么也不会发生,内部 link 仍然可以使用该标签
4) 我最近更新了 .htaccess 文件,这可能是原因,但路由仍然没有问题,我不明白为什么 RewriteRule
可能会影响内部 links .此外,尝试将其恢复到以前的版本也没有帮助
5) 相同的行为适用于 Firefox 和 Chrome,最新版本
6) 我试图在相同的环境(相同的 .htaccess,相同的 HTML 基本模板)中创建一个测试页面,其中只有一个很长的 <ul>
列表,其中包含按顺序排列整数的列表元素直到 500,然后在页面底部出现一个 <a href="#20">To 20</a>
,一切正常...什么可以强制内部 link 重定向?!请帮助
我终于解决了!在这里查看 link and here link。问题出在 <head>
部分中的 <base href="/" />
标记。我用 jQuery 和纯 JavaScript 的混合解决了(jQuery 仅用于 select 锚点和获取属性),这里
$("a.local").on("click", function (e) {
e.preventDefault();
document.location.hash = "";
document.location.hash = $(this).attr("href");
});
请注意,在实际将其设置为锚点的 href 之前,我需要将哈希值设置为一个空字符串,因为 document.location.hash = $(this).attr("href");
本身不会在多次点击内部锚点时触发自动滚动(我试过它)