这是一个讨厌的人。
我有一个外部链接。
<a href="http://www.example.com" target="_blank">
现在,我想在每次点击该链接时跟踪Google AdWords转化。
为此,我添加了一个加载Google图片的click
事件。图像计算转换次数。为了确保在用户离开之前加载图像,我使用图像的load
事件来继续原始链接的目标。
$("#linkname").click(function() {
var element = document.createElement("img");
element.onload = function() { ..... };
element.setAttribute("src", "http://www.googleadservices.com/....");
document.body.appendChild(element);
});
这可以使用location.href
正常工作。但是,它不适用于target="blank"
个链接。
我很困惑要在onload函数中加入什么才能打开一个新窗口。
我无法使用window.open
,因为它会被弹出窗口阻止程序捕获(因为它位于图像的onload
事件中,它看起来像一个纯粹的程序化调用,什么都没有与点击的链接有关。)另外,在没有任何选项的情况下调用window.open并不会在Google Chrome中为我提供任何控件。
我不能让click
事件继续正常进行,因为我必须等到图像加载,这是异步操作!
基本上,我需要的是一种以编程方式打开target="_blank"
链接的方法,这可能是不可能的,因为它可能被弹出窗口拦截器断开。
或者,我需要一种方法来可靠地计算匹配数,同时让链接的原始click
事件按预期继续。
有人知道该怎么做吗?
答案 0 :(得分:3)
由于链接在新窗口中打开,因此您无需等待图像加载。让图像在当前窗口中加载(正在完成)并让用户正常看到新窗口。用户在加载图像之前不太可能关闭窗口,因此计数不会受到干扰。
答案 1 :(得分:0)
我不确定它是否会起作用或者你是否可以(因为某些要求)这样做但是:
尝试打开一个没有位置的新窗口,但是在真正的点击事件上(不在图像的上载中),但打开宽度和高度为0的窗口,并将其x和y放在某个不可见的位置用户,或尽可能不太明显。 保持对此窗口的引用。
在图片的onload事件中,更改新窗口网址的位置,然后调整大小并重新定位新窗口。
希望它有效。