javascript:window.open 不起作用?

Posted

技术标签:

【中文标题】javascript:window.open 不起作用?【英文标题】:javascript: window.open does not work? 【发布时间】:2016-11-05 16:10:42 【问题描述】:

我正在尝试实现这个:

https://***.com/a/30225669/533426

但是,一个简单的打开窗口不起作用,请参见此处:

http://codepen.io/anon/pen/LkLNaX

javascript

 window.open('http://www.bippo.com', '_blank');
alert("wtf");

我错过了什么吗?

这应该特别适用于 android 和 iphone 手机。

【问题讨论】:

浏览器中的一般规则是由于滥用/安全性,它需要用户事件才能打开新窗口。还取决于用户安全设置...有些人可能会看到提示...如果您尝试在没有用户事件的情况下打开,其他人什么也看不到 在this post看到正确的答案。 即使手动触发也不行:见codepen.io/anon/pen/LkLNaX 在您的脚本中有几个未定义的变量(上、左...)。如果你不解决这个问题,它就无法工作。 【参考方案1】:

您的 codepen 代码有效,只需检查您的浏览器弹出块。

window.open("http://www.bippo.com",'_blank');

【讨论】:

错误信息是这样的:pen.js:2 Uncaught SecurityError: Blocked a frame with origin "http://s.codepen.io" from accessing a frame with origin "http://codepen.io". Protocols, domains, and ports must match.【参考方案2】:

试试这个

<a href="javascript:test()">test</a>

function test()
    window.open("http://www.bippo.com",'_blank');
    alert("wtf");  

【讨论】:

【参考方案3】:

也许您在别处重新定义了 open 函数,或者 window.open() 不是由用户操作直接调用的。特别是在移动浏览器中,您不能从计时器或任何异步任务中调用此函数。

【讨论】:

以上是关于javascript:window.open 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 通过 s-s-rS 2008 R2 调用时,window.open 在 IE 中不起作用

跨浏览器javascript window.open方法

在 Android 中的 window.open() 之后 setInterval() 不起作用

为啥 onload 事件在使用 window.open 打开的选项卡上不起作用?

window.open 新窗口的高度设置不起作用,宽度可以改变

Phonegap window.open 在 Android 上不起作用