如何将网页上的任何特定链接重定向到特定网址?
我有一个网页,它包含几个链接。
我希望每当有人点击link1.com时,他都会被重定向到www.example.com
请告诉我如何解决这个问题。
使用以下代码,我可以在屏幕上重定向当前页面。但我需要为我网站上的每个链接都这样做。
答案 0 :(得分:1)
以下是一些示例代码。您可以编辑重定向变量以满足您的需求。重定向变量的索引是正则表达式,如果匹配链接被重定向。
选项1
<a href="http://link1.com">link 1</a>
<a href="http://link2.com/alsoredirected">link 2</a>
<a href="http://wikipedia.org">not redirected</a>
<script>
var aTags = document.getElementsByTagName("a");
var redirects = {
"http://link1.com": "http://google.com",
"link2.com": "http://google.com"
};
for(var i = 0;i < aTags.length; i++) {
aTags[i].addEventListener("click", function(event) {
var url = this.getAttribute("href");
for (var redirect in redirects) {
var pattern = new RegExp(redirect);
if (pattern.test(url)) {
window.location = redirects[redirect];
event.preventDefault();
}
}
});
}
</script>
选项2
这是首选解决方案,因为它会在必要时替换href属性。因此,您不必在每次点击时都检查重定向。
<a href="http://link1.com">link 1</a>
<a href="http://link2.com/alsoredirected">link 2</a>
<a href="http://wikipedia.org">not redirected</a>
<script>
var aTags = document.getElementsByTagName("a");
var redirects = {
"http://link1.com": "http://google.com",
"link2.com": "http://google.com"
};
for(var i = 0;i < aTags.length; i++) {
var url = aTags[i].getAttribute("href");
for (var redirect in redirects) {
var pattern = new RegExp(redirect);
if (pattern.test(url)) {
aTags[i].setAttribute("href", redirects[redirect]);
}
}
}
</script>