在页面上执行的具有绝对路径的所有点击前添加 URL
Prepend URL to all clicks with absolute paths executed on a page
我遇到了广告代理商投放没有点击跟踪参数的广告的问题 URLs。
在我的示例中,点击 URL 将是:
http://landing-page.com
我的跟踪 URL 将是:
http://tracker.com?url=
期望的效果是,当用户点击广告素材上的任何 link 时,他将被发送到:
http://tracker.com?url=http://landing-page.com
问题是,link 是使用 <a>
标签或 click
eventListener
定义的。使用 onclick
或 addEventListener('click', func)
)
我可以遍历所有 a[href^=http]
。
如何 catch/prepend 我的 URL 到事件侦听器?
非常感谢
编辑:
所以对于 href
s 我正在做这样的事情:
<script>
var links = adContainer.querySelectorAll('a[href^=http]');
window.adclick = 'http://tracker.com?url='
for (var i = 0; i < links.length; i++) {
(function(i) {
links[i].addEventListener('click', function(e) {
window.open(window.adclick + links[i].href, '_blank');
e.preventDefault();
});
})(i);
}
</script>
我遇到的问题是,我无法解决问题,也无法在线查找如何使用事件侦听器执行类似操作。
经过更多尝试,我找到了一个非常简单的解决方案。
我仍然应该检查 URL 是否以 http
开头 - 但你明白了要点:
window._open = window.open;
window.open = function(url, target) {
window._open('http://tracker.com?url=' + url, target);
}
干脆试试改:
window.open(window.adclick + links[i].href, '_blank');
在
window.open(window.adclick + this.href, '_blank');
所以试试这个:
<script>
var links = adContainer.querySelectorAll('a[href^=http]');
window.adclick = 'http://tracker.com?url='
for (var i = 0; i < links.length; i++) {
links[i].addEventListener('click', function(e) {
window.open(window.adclick + this.href, '_blank');
e.preventDefault();
});
}
</script>
我遇到了广告代理商投放没有点击跟踪参数的广告的问题 URLs。
在我的示例中,点击 URL 将是: http://landing-page.com
我的跟踪 URL 将是: http://tracker.com?url=
期望的效果是,当用户点击广告素材上的任何 link 时,他将被发送到:
http://tracker.com?url=http://landing-page.com
问题是,link 是使用 <a>
标签或 click
eventListener
定义的。使用 onclick
或 addEventListener('click', func)
)
我可以遍历所有 a[href^=http]
。
如何 catch/prepend 我的 URL 到事件侦听器?
非常感谢
编辑:
所以对于 href
s 我正在做这样的事情:
<script>
var links = adContainer.querySelectorAll('a[href^=http]');
window.adclick = 'http://tracker.com?url='
for (var i = 0; i < links.length; i++) {
(function(i) {
links[i].addEventListener('click', function(e) {
window.open(window.adclick + links[i].href, '_blank');
e.preventDefault();
});
})(i);
}
</script>
我遇到的问题是,我无法解决问题,也无法在线查找如何使用事件侦听器执行类似操作。
经过更多尝试,我找到了一个非常简单的解决方案。
我仍然应该检查 URL 是否以 http
开头 - 但你明白了要点:
window._open = window.open;
window.open = function(url, target) {
window._open('http://tracker.com?url=' + url, target);
}
干脆试试改:
window.open(window.adclick + links[i].href, '_blank');
在
window.open(window.adclick + this.href, '_blank');
所以试试这个:
<script>
var links = adContainer.querySelectorAll('a[href^=http]');
window.adclick = 'http://tracker.com?url='
for (var i = 0; i < links.length; i++) {
links[i].addEventListener('click', function(e) {
window.open(window.adclick + this.href, '_blank');
e.preventDefault();
});
}
</script>