2011-10-10 39 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

相关问题