如何用Javascript重写URL,同时排除一些

时间:2011-08-26 08:24:34

标签: javascript url

我创建了一个脚本,用于重写页面上的出站网址,不包括任何包含“http://www.mysite.com”的网址。这是脚本:

<script type="text/javascript">
    onload = function () {
         for (var i = 0; i < document.links.length; i++) {
              if (document.links[i].href.indexOf("http://www.mysite.com") == -1) {
                 document.links[i].href = 'http://www.mysite.com/redirect.php?' + document.links[i].href
              }
         }
    }
</script>

我希望能够做的是列出要排除的多个网址。这样做的最佳方式是什么?

我可以创建要排除的URL数组,然后确保脚本忽略该数组中包含的任何内容吗?

如果是这样,我将如何为此构建if语句?

提前致谢。

1 个答案:

答案 0 :(得分:0)

以jQuery方式,您可以使用inArray方法。

var excludeURLs = ["othersite.com", "anothersite.com"];

onload = function () {
     for (var i = 0; i < document.links.length; i++) {
          if (document.links[i].href.indexOf("http://www.mysite.com") == -1 &&
              $.inArray(location.host.replace('www.', ''), excludeURLs) != -1 ) {
              document.links[i].href = 'http://www.mysite.com/redirect.php?' + document.links[i].href;
          }
     }
}

为简单起见,我从主机中删除了www.

如果您不想使用jQuery,可以创建自己的函数,如this