2011-10-10 84 views
0

我需要抓取引用URL的路徑,該URL可以來自許多不同的主機名,這些主機名可以在HTTP或HTTPS下,甚至有端口號。如何在Javascript中獲取沒有主機名的引用URL?

有人可以給我一個例子,只有當引用URL包含一個特定的字符串,如路徑和文件名或只是一個沒有文件擴展名的特定路徑時,如何運行一些代碼?

+0

你會使用'document.referrer'。另請參閱:http://stackoverflow.com/questions/1098877/javascript-redirect-based-on-referrer –

+0

感謝您的提示,但我不確定如何只抓住主機名後可能包含.com ,.net,甚至一個端口號。所以我只想比較主機名後面的第一個「/」後面的內容。 – Zoolander

回答

4

好了,你可以用一些簡單的開始:

var parts = document.referrer.replace(/^https?:\/\//, '').split('/'); 
parts.shift(); 
var path = parts.join('/'); 
if (path.indexOf('filename') > -1) { 
    // code here 
} 

如果你需要更多的靈活性看到這個庫:http://blog.stevenlevithan.com/archives/parseuri

+0

除了具有多個主機名稱之外,引用頁面可以使用HTTP或HTTPS協議。你可以請更新你的例子在任何協議下工作?另外,我只需要在這個地方抓取引用者,所以使用庫會過度。 – Zoolander

+0

我已更新我的替換使用正則表達式來處理http和https。 – deviousdodo

相關問題