2012-10-01 117 views
8

我的网站会将访问者恢复为单独的移动网站,在阅读了一些在线指南后,这似乎相当简单。让人们从手机网站恢复到桌面版网站

不过,我希望人们能够点击移动网站,然后将带他们到桌面网站上的链接。

我看到的问题是,如果我链接回桌面站点它只是重定向他们回来,如果他们是在移动?

我该如何解决这个问题?

+3

您可能会向我们展示您目前是如何从桌面移动到移动网站的。 – Nelson

+0

为什么你甚至需要建立独立的移动和桌面网站?您应该查看媒体查询:https://www.google.pl/search?q=media+queries –

+0

@RuFFCut - 问题已解决。按照我的流程图(见我的回答如下)在你的服务器端编程语言,并实现移动重定向启示。 –

回答

7

真的你想在服务器端做这种事情,而不是客户端。问题在于,你迫使移动用户(可能连接不良)首先下载整个桌面站点(可能超过1MB),只是为了让JavaScript重定向生效。

到那时,你的移动访问者可能已经失去了耐心,已经离开了。

我在这里博客了这个过程:http://www.9xb.com/blog-2012-08-6-common-pitfalls-when-deploying-a-mobile-site-and-how-they-can-be-avoided/ - 如果你跳到文章的底部,你会看到一个流程图,它映射出整个过程。这种特殊的方法使用cookie,但可以改编。这个流程图的优点在于它独立于语言 - 您可以在任何服务器端编程风格中开发它。

为方便起见,我已经包括下面的流程图(虽然我强烈建议你给的文章读):

http://www.9xb.com/wordpress/wp-content/uploads/2012/08/mobile-deployment-small.png

的替代所有这些工作,是制定一个移动第一响应网站。不知道你的情况,我会放弃它 - 在任何情况下都不适合。

+0

Upvote大家这个问题。认真。这是问题的正确答案 – naugtur

+0

非常感谢;我会读它并希望实施! – RuFFCuT

+0

网址和图片不再可用...(2012年的任何内容都不存在了。) – Malachi

4

使重定向到移动设备成为可选(即在桌面页面顶部的链接),或者仅将移动重定向仅放置在初始入口点,即mydomain.com。如果他们去mydomain.com/index.html,那么不要重定向。这样,您的“回到桌面”链接可以简单地链接到index.html,从index_mobile.html或您发送移动体验的任何地方。

就个人而言,我宁愿布局是足够的液体反正适合何种浏览器,那么就没有开始与问题。请记住,现在已有各种尺寸的平板电脑将移动浏览域混淆。

0

静态

/site/index.html 
/site/mobile/index.html 

然后你就可以使用一系列的事情。

  1. 饼干
  2. 会话状态
  3. 用户登录和使用偏好设置(甚至保存的数据库)

如果您正在使用一个静态的网站 - 变得更加困难,因为它得到凌乱的JavaScript重定向和两个重复的页面。发布您的代码并告诉我们您目前如何进行设置,并且我将更新我的解决方案。

4

不幸的是,您无法在window.location更改后检查引用者。但是你可以添加一个hashtag然后检查它。

if(window.location.hash == "#stayHereDude"){ 
    // do nothing, or whatever 
} else { 
    window.location = "mobile/index.html"; 
} 

然后,您将在移动页面上建立到/index.html#stayHereDude的链接。

1

在您的主页页面,使移动重定向,你会想,以检查它们标记为具有从移动网站来的HREF东西。在我的情况下,我使用了链接到移动网站的主页,在其结尾处有一个?m = 0。例如:http://www.yoursite.com/?m=0

然后,在href中的m = 0的主页上重定向之前检查。如果它在那里,则不要重定向,如果不是,则重定向到移动设备。

if (window.location.href.match("m=0")) { 
} else { 
    window.location = "http://www.yoursite.com/mobilesite"; 
} 

如果您只是从单个页面重定向到您的移动网站,

1

您可以使用Cookies,会话或本地存储,以便当用户点击“转到桌面站点”时,它设置一个值。

比方说,当手机上的用户点击“转到桌面版网站”时,您将名称设置为“mobileOff”,并将值设置为“1”或“true”。然后,无论你做你的手机办理登机手续,增加一个条件在用户的Cookie /会话/ localStorage的来检查mobileOff,如果它设置为true,跳过自动移动重定向,否则,加载主桌面网站。

1

您应该将用户代理方法与查询字符串一起检测设备clubbed到这种功能。 所以让我们假设你的链接是

site/default.aspx 

如果有一个人打此页面检查用户代理,并在响应给予适当网站或事件更好,如果检测到设备如果移动设备简单地重定向到m.yourdomain.com/site/default.aspx
但如果有人点击页面site/default.aspx?type = desktop,则覆盖检查useragent并呈现桌面站点的行为。

永远应先加载桌面网站,然后通过JavaScript reditect到移动网站。使用用户代理服务器端执行此操作。