我有一个移动网站,但如果用户在移动设备上,我需要一个脚本将用户重定向到该网站。
4 回答
有几种方法可以做到这一点,但检测屏幕尺寸是一种很好的方法。请注意,屏幕宽度与浏览器窗口大小无关。
<script type="text/javascript">
<!--
if (screen.width <= 699) {
document.location = "mobile.html";
}
//-->
</script>
您还可以通过User Agent 字符串匹配特定设备,例如 iPhone 或 iPod 。
<script language=javascript>
<!--
if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
location.replace("http://url-to-send-them/iphone.html");
}
-->
</script>
重要警告
虽然这可行,但当您尝试访问特定页面时被重定向到移动网站的首页也很烦人。例如,当您点击 Facebook 的链接试图访问一篇文章时,如果该网站将您重定向到该网站移动版的首页,这会令人愤怒且非常无益!很有可能,他们永远不会努力去寻找内容。
paulsm4 是正确的,使用 CSS 在相同的 URL 上为您的网站提供移动布局而不是重定向是一种更理想的解决方案。但是,如果这不是一个选项,那么下一个最好的方法是重定向到网站移动版本的匹配 URL。
例如,如果您的移动网站只有一个不同的子域,那么您可以使用 Javascript 重定向到移动版本的正确页面:
<script type="text/javascript">
<!--
// Full URL: http://example.com/articles/1
// Mobile URL: http://mobile.example.com/articles/1
if (screen.width <= 699) {
// Redirect to the same page on the mobile site
document.location.host = "mobile." + document.location.host;
}
//-->
</script>
您必须先检测浏览器。这是一个包含有关使用 javascript 进行浏览器检测信息的页面:http://www.w3schools.com/js/js_browser.asp 如果检测到的浏览器是移动浏览器之一,那么您将它们重定向到另一个页面。这是关于这个主题的一个非常有用的页面:http ://www.zytrax.com/tech/web/mobile_ids.html 还包含用于浏览器检测的 php 代码
您的第一道防线应该是使用 CSS:
http://www.alistapart.com/articles/return-of-the-mobile-stylesheet
http://perishablepress.com/the-5-minute-css-mobile-makeover/
除此之外,这里有一些可以为您进行重定向的 Javascript:
http://css-tricks.com/snippets/javascript/redirect-mobile-devices/
<script type="text/javascript"> <!-- if (screen.width <= 699) { document.location = "mobile.html"; } //--> </script>