Javascript 让人们从移动站点恢复到桌面站点
我的网站将恢复访问者到一个单独的移动网站,这似乎相当简单后,阅读了一些在线指南 然而,我希望人们能够点击移动站点上的链接,然后将他们带到桌面站点 我看到的问题是,如果我链接回桌面站点,如果他们在移动设备上,它只会将他们重定向回桌面站点Javascript 让人们从移动站点恢复到桌面站点,javascript,html,mobile,Javascript,Html,Mobile,我的网站将恢复访问者到一个单独的移动网站,这似乎相当简单后,阅读了一些在线指南 然而,我希望人们能够点击移动站点上的链接,然后将他们带到桌面站点 我看到的问题是,如果我链接回桌面站点,如果他们在移动设备上,它只会将他们重定向回桌面站点 如何解决这个问题?将重定向至移动设备设置为可选(即桌面页面顶部的链接),或仅将移动设备重定向设置为初始入口点,即mydomain.com。如果他们转到mydomain.com/index.html,则不要重定向。这样,你的“返回桌面”链接就可以是一个普通的链接,从
如何解决这个问题?将重定向至移动设备设置为可选(即桌面页面顶部的链接),或仅将移动设备重定向设置为初始入口点,即
mydomain.com
。如果他们转到mydomain.com/index.html
,则不要重定向。这样,你的“返回桌面”链接就可以是一个普通的链接,从index\u mobile.html
或任何你发送给他们的移动体验的地方链接到index.html
就我个人而言,我更希望它的布局足够流畅,适合任何一款浏览器,那么一开始就没有问题了。请记住,现在有各种尺寸的平板电脑可以搅浑手机浏览水域。静态
/site/index.html
/site/mobile/index.html
然后你可以使用一系列的东西
如果你使用的是一个静态站点,它会变得更加困难,因为它会因为JavaScript重定向和两个重复页面而变得混乱。发布您的代码,并告诉我们您当前如何进行设置,我将更新我的解决方案。很遗憾,在window.location更改后,您无法检查推荐人。但是您可以添加一个hashtag,然后检查它
if(window.location.hash == "#stayHereDude"){
// do nothing, or whatever
} else {
window.location = "mobile/index.html";
}
然后,在移动页面上创建一个指向/index.html#stayhereded的链接。在使移动重定向的主页上,您需要在href中检查标记他们来自移动站点的内容。在我的例子中,我使用了一个从移动站点到主页的链接,它的结尾是?m=0。例如: 然后在主页重定向之前检查href中的m=0。如果有,不要重定向,如果没有,重定向到手机
if (window.location.href.match("m=0")) {
} else {
window.location = "http://www.yoursite.com/mobilesite";
}
如果你只是从一个页面重定向到你的移动站点,这是可行的 你真的想在服务器端而不是客户端做这类事情吗。问题是,您正在强制移动用户(连接可能不好)首先下载整个桌面站点(可能超过1MB),以便javascript重定向生效 到那时,你的移动访客可能已经失去耐心,已经离开了 我在这里写了关于这个过程的博客:-如果你跳到文章的底部,你会看到一个流程图,它描绘了整个过程。这种特殊的方法使用cookies,但可以进行调整。这个流程图的美妙之处在于它与语言无关——您可以在任何服务器端编程风格中开发它 为方便起见,我在下面提供了流程图(尽管我强烈建议您阅读本文):
所有这些工作的替代方案是开发一个移动第一响应站点。不知道你的情况,我就不说了——这并不总是适用于每个场景。你可以使用cookie、会话或本地存储,这样当用户单击“转到桌面站点”时,它就会设置一个值
假设当用户在移动电话上单击“转到桌面站点”时,您将名称设置为“mobileOff”,将值设置为“1”或“true”。然后,无论您在哪里执行移动检查,都要在用户的cookie/session/localStorage中添加一个条件来检查mobileOff,如果设置为true,则绕过自动移动重定向,否则,加载主桌面站点 您应该将用户代理方法与查询字符串结合起来检测设备俱乐部,以实现此类功能。 所以让我们假设你的链接是
site/default.aspx
如果有人点击此页面,请检查用户代理,并在响应中给出适当的站点或事件,如果设备检测到移动设备只是重定向到m.yourdomain.com/site/default.aspx
但是如果有人点击页面site/default.aspx?type=desktop,则会覆盖检查useragent并呈现桌面站点的行为。
永远不要先加载桌面站点,然后通过javascript重新检测到移动站点。使用用户代理服务器端执行此操作。您可以向我们展示您当前如何从桌面重定向到移动站点。为什么您甚至需要构建单独的移动站点和桌面站点?您可能应该看看媒体查询:@RuFFCut-问题已经解决。使用服务器端编程语言按照我的流程图(见下面的答案),实现移动重定向。感谢所有帮助!请大家投票表决这个问题。认真地这是问题的正确答案URL和pic不再可用。。。(2012年的一切都不见了。)