javascript - jQuery:动态更改所有 href 值
问题描述
我一直在寻找这样的问题,但他们都没有回答我的问题。
请原谅我,因为我有时缺乏解释自己的能力。
我在sub1.domain.com中有一个页面,其中所有链接的格式为
<a href="/link?param=whatever">
我正在使用 jQuery 将基域更改为sub2.domain.com,然后将 /link 部分与页面上所有 href 的主机不同。我在研究这个问题时发现了这个片段。这是代码:
$('a').each(function() {
$(this).attr("href", function(index, old) {
return old.replace("/link", "https://sub2.domain1.com/link");
});
});
它就像静态链接的魅力,但问题是该页面是一个搜索结果页面,即使在页面加载后也会动态加载新结果。
如何使其动态化,以便搜索加载的所有链接都由该脚本自动修改?换句话说,我如何将此脚本应用于页面加载后出现的链接并且新结果进来?
在这种情况下,base href 将不起作用,因为它会以某种方式破坏整个页面。
谢谢你。
解决方案
您实际上可以将此事件绑定到单击。因此,当单击链接时,它将运行此功能并更改链接。然后,只要它绑定到父级或文档,这也会更改任何新链接,例如下面
$(document).on('click', 'a', function(e){
e.preventDefault();
var link = $(this).attr( 'href' );
link = link.replace("/link", "https://sub2.domain1.com/link");
window.location.href = link;
});
推荐阅读
- apache-camel - 使用 CamelBlueprintTestSupport 从端点测试某些组件失败
- javascript - 允许 Javascript 多次运行
- javascript - 如何使用 vue/quasar 验证确认密码
- python - 替换文件中的一行将另一行移到上一行
- excel - 正确的代码格式以在 Excel 宏中设置图表坐标、标题、字体和添加的文本
- r - kableExtra : 为行名添加脚注 [kableExtra, Rmd]
- angular - 从 Angular 7 升级到 Angular 8 后,我的管道测试停止工作:TypeError: undefined is not iterable
- android - Android 暗模式行为
- android - 我正在尝试应用 crashlytics,但 gradle 中发生了错误
- javascript - 如何在具有固定页眉和页脚的 HTML 布局中使用水平滚动条显示全部内容?