使用窗口.反复打开会产生意想不到的结果
Using window.open repeatedly produces unexpected result
我的浏览器允许任何网站显示弹出窗口(使用window.open
)。
window.open("http://www.google.com/","_blank");
以上代码在新选项卡上打开google.com
然而,当我像这样反复使用window.open
时:
window.open("http://www.google.com/","_blank");
window.open("http://www.facebook.com/","_blank");
window.open("http://www.example.com/","_blank");
现在,google.com
在新选项卡上打开,facebook.com
和example.com
以弹出窗口打开。我想让这3个链接在新标签页中打开,但是我做不到。
我该如何解决这个问题?
我很惊讶第二个和第三个竟然被打开了。(Chrome上没有,它会屏蔽它们;但我确实看到了你描述的行为,如果我禁用拦截器。
您需要提供单独的UI元素(按钮等)来单独打开每个窗口,以便每个window.open
调用由单独的最终用户操作触发,而不是响应单个用户操作打开几个窗口。希望这将为您提供每个窗口所需的行为。虽然你不能控制打开一个新窗口还是一个选项卡,但是现在大多数浏览器默认使用新选项卡(并且大多数用户都有一个选项来改变它),除非你给window.open
提供第三个参数,在这种情况下,他们可能会打开一个新窗口,而不是使用你传递给该参数的设置。
由于Chrome在第二次和第三次调用中做了这种不寻常的事情,在大多数情况下,将自己限制为每个用户操作一个open
应该可以工作,因为在大多数情况下默认是一个新选项卡,而不是一个新窗口。
相关文章:
- JavaScript 模块模式给出了意想不到的结果
- 使用 jQuery 从 HTML 获取 id,给出意想不到的结果
- Javascript for loop产生意想不到的结果
- Javascript计算产生意想不到的结果
- 比较 JavaScript 中的浮点数会产生意想不到的结果
- 弄乱jquery产生了意想不到的结果
- 当元素相等时,Array.sort() 会产生意想不到的结果
- 在JavaScript中循环获得意想不到的结果
- Math.round与Math.ceil相比会产生意想不到的结果
- CSS旋转和平移转换会产生意想不到的结果
- 在Javascript函数中传递参数产生意想不到的结果
- 函数迭代日期数组会产生意想不到的结果
- 重新启动函数会产生意想不到的结果
- CSS为jQuery页面生成与意想不到的结果
- json字符串中的数组长度在angular ng-repeat中返回意想不到的结果
- Javascript:从对象方法内部调用回调函数,产生意想不到的结果
- Javascript: Async嵌套函数在其他Async函数中会产生意想不到的结果
- Raphael-使用transform缩放js路径-意想不到的结果
- 使用窗口.反复打开会产生意想不到的结果
- Lodash isUndefined提供了意想不到的结果