我在应用程序中使用<base>
标记来简化开发。
我知道"功能"发生时,锚只是一个URL片段,因为它路由到<base>
URL +片段。
我能做些什么来规避呢?我从来没有在Javascript中使用window.location
或任何东西,而不是在它周围破解一段时间,我假设有人知道快速和肮脏,或一个例子。
这可以被规避吗?如果有,请告知。
(我讨厌问那些暗示我没有尝试过的问题,但是我一直在寻找/阅读几乎没有用)
(也;使用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("#"));
}
}
不要使用相对url。基本标签不会影响url,如/home
或http://google.com
,但它会影响about/us
或users/12