【发布时间】:2012-04-20 09:17:21
【问题描述】:
总结:
1. 需要打开一个新窗口来显示来自第三方的调查。
2.无法使用JavaScript打开窗口(目前使用target="_blank"。
3.必须使用JavaScript来跟踪点击(目前使用onclick)。
4. 原窗口点击后不得改变内容。
我有一个 JSP 正在尝试在新窗口中启动第三方调查。最初,代码是这样启动新窗口的:
<a id="customer_survey_button" href="#" target="_blank" onclick="recordOutboundLink(this, 'Outbound Links', 'blah.com');openChildWindow('http://www.blah.com/f.asp?etcetera','TAKE SURVEY');return false;" class="genbut">TAKE SURVEY</a>
它在 FF 中有效,但在 Chrome 中无效。它导致了 Chrome 的安全问题。类似于“不安全的 JavaScript 尝试访问加载一个域的框架(新窗口)”之类的东西,而它的来源是另一个域。我的解决方案是使用 HTML 打开窗口,如下所示:
<a id="customer_survey_button" href="http://www.blah.com/f.asp?etcetera" target="_blank" onclick="recordOutboundLink(this, 'Outbound Links', 'blah.com');return false;" class="genbut">Take Survey</a>
问题是,这不是在新窗口中打开。在调试期间,我从上面的代码中删除了 onclick,它确实在新窗口中打开。不知道是不是JS代码有问题...
<script type="text/javascript">
<!--
var pageTracker = _gat._getTracker("<%=googleTrackerId%>");
pageTracker._initData();
pageTracker._trackPageview();
function recordOutboundLink(link, category, action) {
try {
pageTracker._trackEvent(category, action);
setTimeout('document.location = "' + link.href + '"', 100)
}catch(err){}
}
// -->
</script>
...或者如果它只是在同一个锚标记中使用 target 和 onclick 的问题。有什么想法吗?
我在其他地方进行了研究,在 Stack Overflow 上,我发现了以下结果,但似乎没有一个可以解决这种情况。例如:
这在某种程度上有所帮助,因为我能够测试“return false”的删除。这与“user1223427”的结果相同 - 它在两个不同的窗口中呈现相同的页面。 它没有帮助,因为我需要一种非 JavaScript 方式来打开目标 URL(由于提到的安全问题)。 OnClick for google analytics and target _blank. The link does not work?
这个没有帮助,因为我没有使用JQuery,我不明白JQuery解决方案与我的情况之间的联系 select onclick that contains _blank
这仅适用于让跟踪代码正常工作,不适用于新窗口打开的问题: Google Analytics - Download clicks tracking
我以为这个会有一个很好的结果,但它的解决方案是 JS 的。 Bug in external link tracking when opening the link in a new window in Google Analytics?
【问题讨论】:
标签: javascript html onclick analytics