1

我设计了一个网页和同一页面的移动版本(使用 jQuery Mobile)。

我有 javascript 代码可以检测用户是否使用移动设备,然后重定向到移动网站 (mobile.html)。

但是,当用户尝试从移动站点转到桌面或完整站点时,它会调出页面,但看起来不正确……当在移动设备上查看时,它有点放大和移位。

************The Javascript to detect mobile device************

var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));  
 if (mobile) { 
    document.location = "http://www.somedomain.com/mobile.html";  }
 }  




************jQuery Mobile button for Full Site ***************

<ul data-role="listview" data-inset="true">
        <li>
            <a href="http://www.somdomain.com/?view=full">Full Site</a>
        </li>
</ul>

如何将重定向到完整网站,使其看起来像在移动设备上一样?

4

3 回答 3

3

显然,您将返回移动网站,因为它将运行您的检测脚本并直接将您重定向回来。您需要使用技术来避免这种情况。

您需要告诉您刚刚来自移动网站的完整网站,并且不想返回。

完整网站上的一些示例:

  • 检查视图是否设置为“完整”。如果为true,请设置 cookie 或 php 会话以避免运行检测脚本。
  • 检查推荐人是否是移动网站。如果为true,则不要运行检测脚本。

希望这能让你上路。

于 2012-10-30T20:06:27.810 回答
3

感谢 Gillian Lo-Wong,我能够获得以下代码为我工作......

主页.html

function urlParam(name){
            var results = new RegExp('[\\?&amp;]' + name + '=([^&amp;#]*)').exec(window.location.href);
            if(results)
                return results[1] || 0;
            else
                return '';
        }

        if(urlParam('view') == 'full'){ 
        }
        if(urlParam('view') == ''){
            // <![CDATA[
            var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));  
            if (mobile) { 
                    document.location = "http://www.mysite.com/mobile.html";  
            }  
            // ]]>
        }

和 mobile.html 代码

<a href="http://www.mysite.com?view=full" data-ajax="false">Full Site</a>
于 2012-11-01T00:09:13.900 回答
0

您可以尝试添加rel="external"<a>指向您的桌面页面的链接:

<ul data-role="listview" data-inset="true">
    <li>
        <a href="http://www.somdomain.com/?view=full" rel="external">Full Site</a>
    </li>
</ul>

这将禁用 Ajax 导航并确保刷新页面,擦除将桌面页面转换为移动页面的数据。

让我知道这是否适合您。

于 2012-10-13T03:24:40.467 回答