Получить данные DOM со ссылкой на URL - PullRequest
0 голосов
/ 22 сентября 2010

Предположим, у нас есть страница со следующей структурой:

<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 получить идентификатор списка (A, B, C) и добавить его вместе со ссылкой на URL, когда человек нажимает на любую из трех ссылок?

  • Необходимо точно знать, из какого из трех тегов списка произошел клик
  • У меня нет прав на запись на исходную страницу

Ответы [ 2 ]

0 голосов
/ 22 сентября 2010

Мы установили (посредством комментариев к другому ответу), что спрашивающий владеет сайтом, на который идет ссылка, а не тем, на котором есть ссылки.

Поэтому вы ничего не можете сделать, чтобы управлять ссылками вкод, который он цитирует, что означает, что ни Javascript, ни PHP, ни какой-либо другой язык не помогут вам.

Итак, очевидный ответ - нет: как владелец example.com, вы не можете сказать, какой из нихпо одной ссылке было кликнуто, чтобы попасть на ваш сайт.Если бы ссылки были на отдельных страницах, вы могли бы узнать по реферальным данным, но для ссылок на той же странице HTTP просто не предоставляет вам эту информацию, так что вы не можете сказать.Вы сможете только определить, указывают ли ссылки на разные URL-адреса (возможно, с параметром запроса), но для этого потребуется изменить ссылки, и вы не сможете изменить ссылки самостоятельно.

Об единственномЯ могу предложить вам старомодное решение: обратитесь к владельцу сайта, содержащего ссылки, и попросите его изменить их, чтобы они были уникальными.

0 голосов
/ 22 сентября 2010

UPDATE

В свете вашего откровения о том, что у вас нет доступа к исходной странице, у вас нет шансов узнать что-либо о конкретной ссылке, по которой щелкнули, чтобы попасть на вашу страницу. Вы можете получить реферера с помощью document.referrer.

Предыдущий ответ для потомков

Следующая функция будет фиксировать щелчок по любой ссылке в элементе контейнера с указанным идентификатором и добавлять строку запроса, содержащую идентификатор элемента контейнера и 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");
...