1

空のクエリ文字列の値を確認する必要がありますが、何か間違っています:(たとえば、URLがindex.phpの場合、#homeを開く必要がありますが、index.php?m=1&s=1の場合#page_1_1 を開く

    function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
var m = getUrlVars()["m"];
var s = getUrlVars()["s"];

if((m!='')&&(s!='')){
    $('#page_'+m+'_'+s+'').show();
}
    else{ $('#home').show(); }
4

1 に答える 1

1

msクエリ文字列が空であるか、これらの値が含まれていない場合、&は未定義になります。チェックを次のように変更する必要があります。

if(m && s) {
    $('#page_'+m+'_'+s+'').show();
} else {
    $('#home').show();
}

上記のifステートメントは、 または がクエリ文字列から省略されている場合、またはそれらのいずれかが空である場合 (例: http://www.somewhere.com?m=1&s= ) にfalse評価msます

于 2013-10-31T02:47:50.090 に答える