摘要: 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 用于谷歌分析和目标 _blank。链接失效了?
这没有帮助,因为我没有使用 JQuery,而且我不了解 JQuery 解决方案与我的情况之间的联系 选择包含 _blank 的 onclick
这仅适用于让跟踪代码正常工作,而不适用于打开新窗口的问题: Google Analytics - 下载点击跟踪
我认为这个会有一个很好的结果,但它的解决方案是一个 JS 解决方案。 在 Google Analytics(分析)的新窗口中打开链接时,外部链接跟踪出现错误?