window.open(url,'_ blank'); 没有在iMac/Safari上工作

 手机用户2602896383 发布于 2023-02-09 08:14

我已经构建了一个网页,让您从下拉列表中选择一个页面名称,然后将浏览器传输到该页面.执行传输的代码是

if (url){
    window.open(url, '_blank');
} 

其中"url"是选中的页面.

window.open行之前的控制台日志打印如下:

    executing: window.open(http://www.mywebsite.com/44/threats.html, '_blank')

然后浏览器在新选项卡中打开页面.

这适用于所有浏览器的Windows 7,包括Safari.

在iMac上,它适用于Firefox但不适用于Safari.

有谁知道为什么iMac/Safari不会这样做?

3 个回答
  • 取自史蒂夫于2013年12月20日接受的答案评论:

    实际上,有一种非常简单的方法:只需在iMac/Safari浏览器中单击"阻止弹出窗口",它就可以实现我的目的.

    为了澄清,在Mac OS X El Capitan上运行Safari时:

      Safari - >偏好设置

      安全性 - >取消选中"阻止弹出窗口"

    2023-02-09 08:19 回答
  • 要在safari中使用window.open(),必须将其放在元素的onclick事件属性中.

    例如: <button class='btn' onclick='window.open("https://www.google.com", "_blank");'>Open Google search</button>

    2023-02-09 08:20 回答
  • Safari阻止对在异步调用中进行的window.open()的任何调用.

    我发现这个问题的解决方案是在进行asnyc调用之前调用window.open并在promise解析时设置位置.

    var windowReference = window.open();
    
    myService.getUrl().then(function(url) {
         windowReference.location = url;
    });
    

    2023-02-09 08:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有