我有一个纯HTML作业,它正在与要交付的服务器不同的服务器上开发。交付服务器是一个专有系统,它实际上仅允许您上传最终的HTML并使其复杂,因为它进行了自己的URL重写,因此我需要在页面之间使用绝对URL寻址,这意味着在开发服务器上单击当前链接将使您进入到尚不存在的实时服务器页面。只是有点不友好的测试。
我可以利用的一件事是,您在实时服务器上放置的HTML只是body标签之间的内容,因此我想我可以在头部弹出一些Javascript,以拦截对以特定URL开头的链接的点击并将其发送到开发服务器;就像是:
“如果URL以https://liveserver.com/开头,则更改为https://devserver.com/ ”
这样,Javascript仅出现在开发服务器上,并且在代码上传时不会执行重定向。
真的不需要为此而烦恼加载JQuery(除非它使它变得容易得多),所以有一种简单的方法可以在纯Javascript中做到吗?prevent.default,也许吗?
谢谢
不确定这是个好主意,但您可以运行查询选择器并替换所有的href。
请注意,在此运行之后,两个链接都指向stackoverflow:
document.querySelectorAll('a')
.forEach(
a => a.href = a.href.replace('google', 'stackoverflow')
);
a {
display: block;
padding: 1em 0;
position: relative;
}
a::after {
content: attr(href);
display: block;
font-size: 0.75em;
font-family: sans-serif;
padding: 0.25em 0;
}
<div>
<a href="http://google.com/google-link">Google</a>
<a href="http://stackoverflow.com/stack-overflow-link">Stack Overflow</a>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句