0

以下は私の現在のリダイレクトコードですが、デバイスではなく画面サイズでリダイレクトするように編集したいと思います。ただし、ユーザーがメイン サイトに戻ることができるように、Cookie を設定する必要があります。

<script type="text/javascript">
var mfp_url='http://mob.visitorconversions.co.uk';
var mfp_host_name=document.location.hostname;
var mfp_request_uri=document.location.pathname;
var  mfp_no_mobile=location.search;
var mfp_cookie=document.cookie;

function mf_detect(){var  mfp_ua=navigator.userAgent.toLowerCase();var mfp_devices=['vnd.wap.xhtml+xml','sony','symbian','nokia','samsung','mobile','windows ce','epoc','opera mini','nitro','j2me','midp-','cldc-','netfront','mot','up.browser','up.link','audiovox','blackberry','ericsson','panasonic','philips','sanyo','sharp','sie-','portalmmm','blazer','avantgo','danger','palm','series60','palmsource','pocketpc','smartp hone','rover','ipaq','au- mic','alcatel','ericy','vodafone','wap1','wap2','teleca','playstation','lge','lg- ','iphone','android','htc','dream','webos','bolt','nintendo'];

for(var i in mfp_devices) {if(mfp_ua.indexOf(mfp_devices[i])!=-1){return true}}}if(mfp_no_mobile!='? nomobile=1'&&mfp_cookie.indexOf('mfp_no_mobile')==-1) {mfp_is_mobile=mf_detect();if(mfp_is_mobile){window.location=mfp_url+"? h="+mfp_host_name+"&r="+mfp_request_uri}}else{if(mfp_cookie.indexOf('mfp_no_mobile')!=-1)  {}else{mfp_cookie_expires=new   Date();mfp_cookie_expires.setTime(mfp_cookie_expires.getTime()+1000*60*60*24);document.cook    ie="mfp_no_mobile=1; expires="+mfp_cookie_expires.toGMTString()+"; path=/;"}}
</script>

以下の回答を使用すると、次のようになります。

<script type="text/javascript">
var mfp_url='http://mob.visitorconversions.co.uk';
var mfp_host_name=document.location.hostname;
var mfp_request_uri=document.location.pathname;
var  mfp_no_mobile=location.search;
var mfp_cookie=document.cookie;

function mf_detect() {
var MOBILE_WIDTH = 640;
var screenWidth = function() {
    width = null;
    if (window.screen != null) width = window.screen.availWidth;
    if (window.innerWidth != null) width = window.innerWidth;
    if (document.body != null) width = document.body.clientWidth;
    return width;
}
return screenWidth() <= MOBILE_WIDTH;
}

for(var i in mfp_devices) {if(mfp_ua.indexOf(mfp_devices[i])!=-1){return true}}}if(mfp_no_mobile!='? nomobile=1'&&mfp_cookie.indexOf('mfp_no_mobile')==-1) {mfp_is_mobile=mf_detect();if(mfp_is_mobile){window.location=mfp_url+"? h="+mfp_host_name+"&r="+mfp_request_uri}}else{if(mfp_cookie.indexOf('mfp_no_mobile')!=-1)  {}else{mfp_cookie_expires=new   Date();mfp_cookie_expires.setTime(mfp_cookie_expires. getTime()+1000*60*60*24);document.cook    ie="mfp_no_mobile=1; expires="+mfp_cookie_expires.toGMTString()+"; path=/;"}}
</script>

しかし、何もリダイレクトしていないようです!

4

1 に答える 1

0

このコードは私にとってはうまくいきます。画面解像度が MOBILE_WIDTH 未満の場合、http://mob.visitorconversions.co.uk?h=[referring_host]&r=[referring_path] にリダイレクトされます。

このjsfiddleを確認してください。リダイレクトの負荷を確認するには、結果ウィンドウのサイズを変更する必要がある場合があります。

<script type="text/javascript">    
    var mfp_url = 'http://mob.visitorconversions.co.uk';
    var mfp_host_name = document.location.hostname;
    var mfp_request_uri = document.location.pathname;
    var mfp_no_mobile = location.search;
    var mfp_cookie = document.cookie;

    function mf_detect() {
        var MOBILE_WIDTH = 640;
        var screenWidth = function() {
            width = null;
            if (window.screen != null) width = window.screen.availWidth;
            if (window.innerWidth != null) width = window.innerWidth;
            if (document.body != null) width = document.body.clientWidth;
            return width;
        };
        return screenWidth() <= MOBILE_WIDTH;
    }

    if (mfp_no_mobile != '?nomobile=1' && mfp_cookie.indexOf('mfp_no_mobile') == -1) {
        mfp_is_mobile = mf_detect();
        if (mfp_is_mobile) {
            window.location = mfp_url + "?h=" + mfp_host_name + "&r=" + mfp_request_uri
        }
    } else {
        if (mfp_cookie.indexOf('mfp_no_mobile') != -1) {} else {
            mfp_cookie_expires = new Date();
            mfp_cookie_expires.setTime(mfp_cookie_expires.getTime() + 1000 * 60 * 60 * 24);
            document.cookie = "mfp_no_mobile=1; expires=" + mfp_cookie_expires.toGMTString() + "; path=/;"
        }
    }​
</script>
于 2012-11-12T23:21:40.247 に答える