javascript - URL 片段和 BASE 标记

标签 javascript html url fragment-identifier

我正在使用<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/

相关文章:

javascript - 使用 Jquery $.ajax 将 json 数据传递给 servlet (doPost)

html - 如何在 sass 中使用嵌套转换

html - css3 中的工具提示在悬停时具有过渡效果

php - PHP中如何从URL中获取数据库名和表名?

javascript - 在 p5.js 中创建圆 Angular Canvas

javascript - 输入掩码无法存储原始值

javascript - 较高值的条形图未显示在 Highcharts 中

javascript - 我应该在 angularjs 应用程序中使用 HTML 元素的 ID

apache - 删除 XAMPP 中 URL 的最后一个斜杠

objective-c - 从URL提取图像