2011-08-26 51 views
1

我已經創建了一個腳本,用於重寫頁面上的出站URL,但不包括任何包含「http://www.mysite.com」的URL。這是腳本,因爲它是:如何用Javascript重寫URL,同時排除一些

<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語句?

在此先感謝。

+0

你的意思只是測試一些值(在這種情況下,URL)是否包含在你準備好的數組中? – Gatekeeper

+0

是的,這是正確的! – sicr

回答

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

+0

嗯,這似乎並沒有工作。理想情況下,我希望腳本自成一體。檢查document.links [i] .href的域是否包含在excludeURls數組中的最簡單方法是什麼? – sicr

+0

@sicr我認爲使用'inArray'方法很簡單。 「自包含」的含義是什麼? –