2

<base>在应用程序中使用标签来简化开发。

我知道当锚只是一个 URL 片段时发生的“功能<base>”,因为它路由到URL + 片段。

我能做些什么来规避它?我从来没有window.location在 Javascript 中做任何事情,而不是在它上面乱搞一段时间,我假设有人知道一个快速和肮脏的,或者一个例子。

这可以规避吗?如果有,请指教。

我讨厌提出没有尝试过的问题,但我一直在搜索/阅读无济于事

另外;使用 jQuery,因此欢迎任何可以利用 vanilla Javascript 或 jQuery 的示例


我一起破解的 jQuery 解决方案,但不确定它是否可以作为永久解决方案,想法?

$('a').each(function(index){
    if($(this).attr('href').indexOf('#') == 0){
        $(this).attr('href', (window.location.href).replace(/#.*$/, '')
            + $(this).attr('href'));
    }
});
4

2 回答 2

3

好的,所以,我想我现在明白了这个问题。

这已在 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("#"));
    }
}
于 2011-07-21T19:38:34.020 回答
0

不要使用相对网址。基本标签不会影响/homeor之类的网址http://google.com,但会影响about/usorusers/12

于 2011-07-21T17:07:40.093 回答