使用引用URL获取DOM数据

时间:2010-09-22 11:37:58

标签: php javascript referrer

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

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

  • 需要具体了解点击源自
  • 的三个列表标签中的哪一个
  • 我没有对原始页面的写入权限

2 个答案:

答案 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(可能带有查询参数),但这需要修改链接,您无法自行修改链接。

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

相关问题