账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    异步场景通过window.open打开新标签页被浏览器阻止
    29
    0

    有这样一种场景,我们在打开一个资源的详细信息之前,需要对其进行一些校验,
    如:由于客户端未及时刷新,而该资源实际已被删除,此时我们通过window.open试图在新标签页展示该资源详情,结果用户可能看到一个没有信息的页面。代码类似这样:

    function goto(instanceId){
        event.preventDefault();
        $.ajax({
            ...options,
            url: "/rest/${instanceId}",
            success: function(res){
                if(res){
                    window.open("/data/${instanceId}", "_blank");
                }
            },
            err: function(err){
                // handler err 
            }
        });
    }

    html是这样的

    <a href="/data/${instanceId}" onclick="goto(${instanceId})">

    但是问题来了,通过window.open方式会被ChromeFirefox阻止,如果不特别设置的话。
    测试发现,如果没有这个异步的查询过程直接打开新标签页,问题就没有了。
    有什么办法可以不更改需求的前提下完美解决该问题么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部