javascript-与onclick一起使用target =“ _ blank”时,无法打开新窗口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-与onclick一起使用target =“ _ blank”时,无法打开新窗口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2554字,纯文字阅读大概需要4分钟。
内容图文
![javascript-与onclick一起使用target =“ _ blank”时,无法打开新窗口](/upload/InfoBanner/zyjiaocheng/675/998c62242de54f44afbaac23213b8998.jpg)
摘要:
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?
解决方法:
recordOutboundLink函数正在打开链接.
//This is changing the URL to the href of the link you clicked
setTimeout('document.location = "' + link.href + '"', 100)
第二个示例是从onclick事件返回false.这将阻止锚标记执行其正常行为.
如果注释掉setTimeout行,并从onclick中删除return false,则应该看到链接的行为符合您的要求.
您还可以修改setTimeout函数以调用window.open而不是document.location
内容总结
以上是互联网集市为您收集整理的javascript-与onclick一起使用target =“ _ blank”时,无法打开新窗口全部内容,希望文章能够帮你解决javascript-与onclick一起使用target =“ _ blank”时,无法打开新窗口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。