简体   繁体   English

HTML Javascript移动重定向

[英]HTML Javascript Mobile Redirect

I know that this has been told many many times but I couldn't make it work. 我知道这已经被告知很多次了,但是我无法使它生效。 I want to use the mobiledetector script for my mobile viewers, but mobil site will have full site link to view the full site as well. 我想为我的移动查看器使用mobiledetector脚本,但是mobil网站将具有完整的网站链接,也可以查看完整的网站。 So it won't redirect mobil site again. 因此,它不会再次重定向美孚站点。 Here is how I do it but didn't work. 这是我的方法,但是没用。

full site index.html: 完整网站index.html:

<script type="text/javascript" src="js/detectmobile.js"></script>

mobile site index html, link to full site and script: 移动网站索引html,链接到完整网站和脚本:

<script language="javascript" type="text/javascript">

function writeCookie()
{
    document.cookie = 'fullsite' // Create the cookie
}

</script>

<a href="http://www.mysite.net/index.html" onclick="writeCookie()">www.mysite.net</a>

detectmobile.js: detectmobile.js:

(function(a,b) {

    if (document.cookie.indexOf('fullsite') >= 0) {
        return; // skips redirect
    }
    if (/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|meego.+mobile|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(di|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://m.mysite.net');

When I try, in a clean browser session, first time I type www.mysite.net, it redirects m.mysite.net . 当我尝试在干净的浏览器会话中首次键入www.mysite.net时,它将重定向m.mysite.net。 I click full site link, it creates the cookie named fullsite. 我单击完整站点链接,它将创建名为fullsite的cookie。 (I checked if there is any cookie created, it was.) After I clicked, it redirects mobil site again! (我检查是否创建了任何cookie。)单击后,它将再次重定向mobil网站! What should I do to make it work? 我应该怎么做才能使其正常工作?

you are creating your cookie on m.mysite.net domain which is by default not accessible to www.mysite.net . 您是在m.mysite.net域上创建Cookie的,默认情况下www.mysite.net无法访问该域。 Those are different websites for the browser. 这些是浏览器的不同网站。

You should set your cookie's domain to .mysite.net or just pass some parameters to www.mysite.net which will tell your main site to set proper cookie 您应该将cookie的域设置为.mysite.net或仅将一些参数传递给www.mysite.net ,这将告诉您的主站点设置正确的cookie。

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

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