假设我们有一个具有以下结构的页面:
<li id="A">
<span class="some class">some content
<a href="http://www.example.com">http://www.example.com</a>
</span>
</li>
<li id="B">
<span class="some class">some content
<a href="http://www.example.com">http://www.example.com</a>
</span>
</li>
<li id="C">
<span class="some class">some content
<a href="http://www.example.com">http://www.example.com</a>
</span>
</li>
使用PHP或JS,是否有可能获取列表ID(A,B,C)并在人们点击三个链接中的任何一个时将其与引用URL一起附加?
答案 0 :(得分:0)
<强>更新强>
根据您的启示,您无法访问原始网页,您无法找到有关点击到达您网页的特定链接的任何信息。您可以使用document.referrer
获取引荐来源。
后代的上一个答案
以下函数将捕获具有指定标识的容器元素中任何链接的单击,并将包含容器元素的id和当前页面的URL的查询字符串添加到URL:
function modifyLink(containerId) {
var el = document.getElementById(containerId);
el.onclick = function(evt) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;
if (target.tagName == "A") {
window.location.href = target.href + "?id=" + encodeURIComponent(containerId) +
"&referrer=" + encodeURIComponent(window.location.href);
return false; // Cancel the default link behaviour
}
};
}
modifyLink("A");
modifyLink("B");
modifyLink("C");
答案 1 :(得分:0)
我们已经建立(通过对另一个答案的评论)提问者拥有链接到的网站,而不是包含链接的网站。
因此,你无法操纵他引用的代码中的链接,这意味着Javascript和PHP,以及任何其他语言都无法帮助你。
所以显而易见的答案是否定的:作为example.com的所有者,您无法分辨这三个链接中的哪一个是被点击进入您网站的链接。如果链接位于不同的页面上,您可以从引用数据中分辨出来,但对于同一页面上的链接,HTTP根本不会向您提供该信息,因此您无法分辨。您只能判断链接是否指向不同的URL(可能带有查询参数),但这需要修改链接,您无法自行修改链接。
关于我能为您提供的唯一解决方案是老式的答案:联系包含链接的网站所有者,并要求他修改它们以使它们独一无二。