Safari 浏览器在重定向 window.location 时崩溃

Posted

技术标签:

【中文标题】Safari 浏览器在重定向 window.location 时崩溃【英文标题】:Safari browser crashes on redirect window.location 【发布时间】:2018-05-09 11:11:24 【问题描述】:

我正在使用此代码打开应用程序,如果它已安装,否则将要求安装。

window.setTimeout(function () 
        var end = (new Date()).valueOf();
        if (end - start < 1000)  
            window.setTimeout(function () 
                window.location = pageurl;//will be redirected to webpage crash is happening here
            , 5);
            window.location = storeurl;
         else 
            window.location = pageurl;
        
    , 5);
    window.location = appicationurl;// will defaultly open application

【问题讨论】:

【参考方案1】:

试试window.open(pageurl);

 window.setTimeout(function () 
            var end = (new Date()).valueOf();
            if (end - start < 1000)  
                window.setTimeout(function () 
                    window.open(pageurl);//will be redirected to webpage crash is happening here
                , 5);
                window.location = storeurl;
             else 
                window.location = pageurl;
            
        , 5);
        window.location = appicationurl;// will defaultly open application

【讨论】:

【参考方案2】:

使用window.location.href

window.setTimeout(function ()  
                         window.location.href = "http://sample.com"; 
                    , 5000);

【讨论】:

我使用了你的代码,但那个代码也会导致崩溃。 但是,在我的 safari 5.1.7 (windows) 上工作的代码。控制台中显示任何错误? 问题出在 iPhone Safari 浏览器上。 试试这个document.location.replace("https://google.com"); 但无法返回页面。 document.location.replace 也崩溃了。

以上是关于Safari 浏览器在重定向 window.location 时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在 Iphone、Ipad 和使用 Safari 浏览器中 - 警报“使用 myapp 打开”

使用 java servlet 在重定向响应中丢失 HTTP 自定义标头

在重定向期间将令牌从 API 传递到前端

单击后但在重定向之前刷新/重置链接/WPushButton 的 WResource

在页面刷新之前从 URL 中删除查询字符串

由于浏览器设置的标头,Safari 拒绝重定向 CORS 请求