我正在使用<base>
在应用程序中添加标记以简化开发。
我知道当 anchor 只是一个 URL 片段时会出现“功能”,因为它路由到 <base>
URL + 片段。
我可以做什么来避免这种情况?我从来没有捏造过 window.location
或 Javascript 中的任何内容,我假设有人知道一个快速而肮脏的方法或一个示例,而不是花一些时间来研究它。
这个可以规避吗?如果有请指教。
(我讨厌问那些暗示我没有尝试过的问题,但我一直在搜索/阅读但收效甚微)
(另外;使用 jQuery,因此欢迎任何利用普通 Javascript 或 jQuery 的示例)
我一起破解的 jQuery 解决方案,但不确定它是否可以作为永久解决方案,你想吗?
$('a').each(function(index){
if($(this).attr('href').indexOf('#') == 0){
$(this).attr('href', (window.location.href).replace(/#.*$/, '')
+ $(this).attr('href'));
}
});
最佳答案
好的,我想我现在明白了这个问题。
这已在 Google Chrome 和 Firefox 中进行了测试。
在正文末尾添加此 javascript:
base=document.getElementsByTagName("base");
base=base[0].href;
links=document.getElementsByTagName('a');
for(index in links){
if(links[index].href.indexOf(base+"#")==0){
links[index].href=document.location+links[index].href.slice(links[index].href.indexOf("#"));
}
}
关于javascript - URL 片段和 BASE 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779839/