2014-10-07 44 views
1

尝试让网页管理重定向,如果深度链接无法打开。如果深度链接打开,很好。如果它不在2秒内,我希望它进入我的网站。除Chrome之外的所有重定向javascript都失败

 <script type="javascript"> 
    setTimeout(function() { window.location = "http://mywebsite.com"; }, 25); 
    window.location = "my://app";  
    </script> 

我已经在Chrome中测试过,它可以正常工作,但是Firefox,IE和Safari都会阻止脚本。

任何人有任何想法如何处理?

+0

你试过'window.location.href'吗?那样有用吗? – Sukima 2014-10-07 01:55:53

+0

是的,试过了。同样的错误发生。 IE:阻止脚本和Firefox提供了一个错误,说:“地址不明白。” Chrome处理它很好。 – mjbares12 2014-10-07 18:04:51

+0

是你尝试去的地址在开始时有“my://”吗? – 2015-04-23 13:43:41

回答

0

window.location.assign(“http:mywebsite.com”)可能是一个更好的选择,因为我相信调用该函数会触发一些额外的事件,可能会使页面的生命周期易于管理。

此外,除了Chrome之外,您可以使用IFrame尝试启动协议处理程序。这将有助于防止页面转向:空白和/或脚本因导航离开页面而停止。

var createIframe = function(id, url, timeout, callback) { 
    var iframe; 
    iframe = document.createElement("iframe"); 
    iframe.hidden = true; 
    iframe.id = id; 
    iframe.src = url; 

    var data = {} 
    data.id = id; 
    data.iframe = iframe; 
    return setTimeout(callback, timeout, null, data); 
} 

createIframe('tempFrame', 'http://mywebsite.com', 25, function(err, data) { 
    if(!err && data){ 
     var iframe = data.iframe; 
     var id = data.id; 
     iframe = document.getElementById(id); 
     iframe.parent.removeChild(iframe); 
    } 
    else { 
    console.log('There was an error createing and removeing the iframe'); 
    } 
}