我需要将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请求的回调,但这根本不应该是一个问题。
答案 0 :(得分:19)
Android支持document.location
,但没有href
属性
尝试使用:
function redirect(uri) {
if(navigator.userAgent.match(/Android/i))
document.location=uri;
else
window.location.replace(uri);
}
答案 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";