如何将页面上的任何特定链接重定向到特定的URL?

问题描述 投票:0回答:1

如何将页面上的任何特定链接重定向到特定的URL?

我有一个网页,它包含几个链接。

  • link1.com(20个链接)
  • link2.com(15个链接)
  • link3.com(8个链接)

[我希望每当有人单击link1.com时,他都会被重定向到www.example.com

请告知我该如何实现。

使用以下代码,我可以对屏幕上的当前页面进行重定向。但是我需要对我网站上的每个链接进行此操作。

javascript hyperlink url-redirection
1个回答
1
投票

这里是一些示例代码。您可以编辑redirects变量以满足您的需求。如果重定向变量的索引与链接的重定向相匹配,则该索引为正则表达式。

选项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>
© www.soinside.com 2019 - 2024. All rights reserved.