我用它来重定向到网页的移动版本(它不在子域中)
<script type="text/javascript">
<!--
if (screen.width <= 699) {
document.location = "http://www.site.com/mobile/";
}
//-->
</script>
<script language="javascript">
<!--
var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
if (mobile) || (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) {
location.replace("http://www.site.com/mobile/");
}
//-->
</script>
但是当我从手机访问时,我收到错误,找不到服务器?
以下是移动版的标题
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
<link rel="apple-touch-icon" sizes="114x114" href="images/icontwo.png">
<link rel="apple-touch-startup-image" href="images/startup.png" />
导致这种情况的原因是什么?如果我直接进入它似乎有效......
答案 0 :(得分:1)
为了安全起见,我会使用window.location.href
,因为语义上document
对象指的是DOM文档或页面上的HTML元素。此外,某些浏览器仅使用window.location.href
此外,您似乎使用了两个重定向:
document.location = "http://www.site.com/mobile/";
和
location.replace("http://www.site.com/mobile/");
可能会导致问题。 location.replace
实际上也会破坏后退按钮功能,这可能会导致一些奇怪的效果,更不用说激动的用户了。
另外,请确保您没有使用https://