0

假设我们有一个具有以下结构的页面:

<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 一起附加?

  • 需要具体知道点击来自三个列表标签中的哪一个
  • 我没有原始页面的写入权限
4

2 回答 2

0

更新

鉴于您透露您无法访问原始页面,因此您没有机会找到有关被点击以到达您的页面的特定链接的任何信息。您可以使用document.referrer.

后代的先前答案

以下函数将捕获对具有指定 id 的容器元素内的任何链接的点击,并将包含容器元素的 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");
于 2010-09-22T12:11:39.887 回答
0

我们已经确定(通过对另一个答案的评论)提问者拥有被链接到的网站,而不是包含链接的网站。

因此,您无法对他引用的代码中的链接进行任何操作,这意味着无论是 Javascript 还是 PHP,甚至任何其他语言都无法帮助您。

所以显而易见的答案是否定的:作为 example.com 的所有者,您无法分辨这三个链接中的哪一个是被点击到达您的站点的链接。如果链接在不同的页面上,您可以从推荐数据中判断出来,但是对于同一页面上的链接,HTTP 根本不会向您提供该信息,因此您无法判断。您只能判断链接是否指向不同的 URL(可能带有查询参数),但这需要修改链接并且您不能自己修改链接。

关于我可以为您提供的唯一解决方案是老式的答案:联系包含链接的站点的所有者,并要求他修改它们以使其独一无二。

于 2010-09-22T12:51:19.597 回答