从JavaScript触发target = _blank链接

时间:2011-03-12 01:46:49

标签: javascript

这是一个讨厌的人。

我有一个外部链接。

<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事件按预期继续。

有人知道该怎么做吗?

2 个答案:

答案 0 :(得分:3)

由于链接在新窗口中打开,因此您无需等待图像加载。让图像在当前窗口中加载(正在完成)并让用户正常看到新窗口。用户在加载图像之前不太可能关闭窗口,因此计数不会受到干扰。

答案 1 :(得分:0)

我不确定它是否会起作用或者你是否可以(因为某些要求)这样做但是:

尝试打开一个没有位置的新窗口,但是在真正的点击事件上(不在图像的上载中),但打开宽度和高度为0的窗口,并将其x和y放在某个不可见的位置用户,或尽可能不太明显。 保持对此窗口的引用。

在图片的onload事件中,更改新窗口网址的位置,然后调整大小并重新定位新窗口。

希望它有效。