0

我有一个移动网站,但如果用户在移动设备上,我需要一个脚本将用户重定向到该网站。

4

4 回答 4

1

有几种方法可以做到这一点,但检测屏幕尺寸是一种很好的方法。请注意,屏幕宽度与浏览器窗口大小无关。

<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>
于 2012-04-30T00:32:02.450 回答
0

您必须先检测浏览器。这是一个包含有关使用 javascript 进行浏览器检测信息的页面:http://www.w3schools.com/js/js_browser.asp 如果检测到的浏览器是移动浏览器之一,那么您将它们重定向到另一个页面。这是关于这个主题的一个非常有用的页面:http ://www.zytrax.com/tech/web/mobile_ids.html 还包含用于浏览器检测的 php 代码

于 2012-04-30T00:33:56.363 回答
-1

您的第一道防线应该是使用 CSS:

除此之外,这里有一些可以为您进行重定向的 Javascript:

于 2012-04-30T00:34:47.760 回答
-1

您不必对 JS 执行此操作 -浏览器实际上将代理字符串发送到 PHP,然后在 HTTP 标头中将任何内容发送回浏览器。看看$_SERVER['HTTP_USER_AGENT']你就会明白我的意思。

CodeIgniter 有一个用户代理类可以帮助处理这种行为。它的来源在这里,它与浏览器代理字符串一起使用的资源文件在这里

于 2012-04-30T00:44:22.717 回答