我创建了一个用户可以添加的书签,并将其发送到我的网站捕获引荐来源。
<a href="javascript:location='http://www.chusmix.com/tests/?ref='+escape(location.href);" onclick="alert('Drag it, not click it!');return false;"> Bookmark </a>
我的问题是由于某种原因,location.href部分而不是打印http://它打印:“http%3A //”。我想删除它并获得domain.com
我有一个类似的代码可能有用,但我很难弄清楚如何在HTML中实现它。
// Function to clean url
function cleanURL(url)
{
if(url.match(/http:\/\//))
{
url = url.substring(7);
}
if(url.match(/^www\./))
{
url = url.substring(4);
}
url = "www.chusmix.com/tests/?ref=www." + url;
return url;
}
</script>
由于
答案 0 :(得分:1)
在大多数浏览器中,引荐来源是作为HTTP协议的标准字段发送的。这在技术上不是你的问题的答案,但它是一个更清晰,更不显眼的解决方案来抓住服务器端的信息。
例如,在PHP中,您可以写:
$ref = $_SERVER['HTTP_REFERER'];
...然后将其存储在文本文件或数据库中或者有什么东西。我无法确定你的最终目的是什么,因为点击书签缺乏浏览的连续性,这需要推荐人信息(比如从搜索引擎或竞争对手的网站转移的方式)。它们可能来自零历史,来自您网站上的其他页面或完全不相关的内容。
答案 1 :(得分:0)
就像我在评论中已经说过的那样:
请注意这种书签可能会损害用户隐私,因此请相应地通知他们。
话虽如此:
首先,请使用encodeURIComponent()
代替escape()
,因为自ECMAScript-262 v3以来已弃用escape()
。
其次,要摆脱“http%3A //”不使用location.href
,请汇总location
属性host
,{{ 1}},pathname
和search
代替:
hash