简体   繁体   English

移动到桌面重定向并必须留在桌面上

[英]Mobile To Desktop Redirection and have to Stay on Desktop

I have a wordpress site that has mobile to desktop redirection script. 我有一个wordpress网站,该网站具有移动到桌面重定向脚本。 The script is working fine. 该脚本运行正常。 But when the user want to nevigate on desktop site through mobile, Again the script detect it as mobile and redirected to mobile site. 但是,当用户希望通过移动设备在桌面站点上导航时,脚本再次将其检测为移动设备并重定向到移动站点。 So I want when the the user redircted to desktop version on mobile he should stay only on desktop version. 因此,我希望当用户在移动设备上重定向到桌面版本时,他应该只停留在桌面版本上。 What is the way to stay on desktop when user once select it as desktop and same for mobile. 当用户一次将其选择为桌面且与移动设备相同时,留在桌面上的方式是什么。 JS CODE for redirection. JS CODE进行重定向。

// JavaScript Document
(function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))window.location=b})(navigator.userAgent||navigator.vendor||window.opera,'http://www.*******.com/mobile');

Thank you.... 谢谢....

you could wrap the javascript up in a php conditional statement and use a $_SESSION variable to determine if your redircet script should be run 您可以将javascript包装在php条件语句中,并使用$ _SESSION变量来确定是否应运行redircet脚本

if(strpos($_SERVER['HTTP_REFERER'], '/mobile') !== false && strpos($_SERVER['REQUEST_URI', '/mobile') === false)
{
    $_SESSION['stayOnDesktop'] = true;
}
else
{
    $_SESSION['stayOnDesktop'] = false
}
if(!isset($_SESSION['stayOnDesktop']) || !$_SESSION['stayOnDesktop'])
{
    //load/echo javascript here
}

This assumes all your mobile pages contain '/mobile'. 假设您的所有移动页面都包含“ / mobile”。 Also if they choose to go back to a mobile version via a link the session variable will be false and they will continue to stay in the mobile site until consciously going back to the desktop version. 同样,如果他们选择通过链接返回移动版本,则会话变量将为false,并且他们将继续停留在移动站点中,直到有意识地返回桌面版本为止。

Aside from using $_SERVER elements you could make the link to the desktop site from the mobile site a form and check if $_POST['flagToStayOnDesktop'] is set to set the session variable. 除了使用$ _SERVER元素之外,您还可以使从移动网站到桌面网站的链接成为表单,并检查$ _POST ['flagToStayOnDesktop']是否设置为设置会话变量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM