Android重定向不起作用

时间:2013-12-31 13:32:53

标签: javascript android

我需要将javascript文件重定向到用户指定的给定URI。

快速举例说明我是如何做到的:

function redirect(uri) {
  if(navigator.userAgent.match(/Android/i)) {
    document.location.href=uri;      
  }
  window.location.replace(uri);
}

这适用于除Android设备之外的所有内容。 iOS和所有现代Webbrowsers都支持window.location.replace(...),但Android设备不支持。

但如果我现在尝试使用此功能重定向,请说“http://www.google.com”Android设备无法实际重定向到给定的网址。

现在只是我在这里愚蠢或者还有其他问题吗?

诚恳

P.S。重定向函数被调用作为发送的XML请求的回调,但这根本不应该是一个问题。

5 个答案:

答案 0 :(得分:19)

Android支持document.location,但没有href属性

尝试使用:

function redirect(uri) {
  if(navigator.userAgent.match(/Android/i)) 
    document.location=uri;      
  else
    window.location.replace(uri);
}

For more info click here

答案 1 :(得分:1)

我认为它应该是window.location.href,而不是document.location.href

答案 2 :(得分:1)

我建议:

location.assign('someUrl');

这是一个更好的解决方案,因为它保留了原始文档的历史记录,因此您可以使用后退按钮或history.back()导航到上一个网页,如here.

所述

答案 3 :(得分:0)

您可以在iOS中使用匹配和替换,但显然不在Android中。根据我的经验,这适用于Android中的重定向:

<script type="text/javascript"> // <![CDATA[
    if ( (navigator.userAgent.indexOf('Android') != -1) ) {
        document.location = "http://www.your URL/your HTML file.html";
    } // ]]>
</script>

答案 4 :(得分:0)

您可以使用:window.location = "http://example.com";