Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 让人们从移动站点恢复到桌面站点_Javascript_Html_Mobile - Fatal编程技术网

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年的一切都不见了。)