2014-10-03 37 views
0

我想在網址中使用?token_code=12345678時隱藏我的網站內容異常。這是不是正常工作的代碼,它隱藏的網站,但從來沒有顯示它:隱藏當使用URL參數時產生的所有內容異常

我被www.example.com/?authtoken=12345678

所以當被包含在該參數調用腳本它應該顯示網站的URL。但它沒有顯示它。它只是隱藏它。

PS。我使用cookies記住 「令牌」 :)

HTML:

<body data-token="12345678"> </body> 

JS:

//setCookie and readCookie 
function SetCookie(e, t, n) { 
    var r = new Date; 
    var i = new Date; 
    if (n == null || n == 0) n = 1; 
    i.setTime(r.getTime() + 36e5 * 24 * n); 
    document.cookie = e + "=" + escape(t) + ";expires=" + i.toGMTString() 
} 

function ReadCookie(e) { 
    var t = " " + document.cookie; 
    var n = t.indexOf(" " + e + "="); 
    if (n == -1) n = t.indexOf(";" + e + "="); 
    if (n == -1 || e == "") return ""; 
    var r = t.indexOf(";", n + 1); 
    if (r == -1) r = t.length; 
    return unescape(t.substring(n + e.length + 2, r)) 
} 

function DeleteCookie(name) { 
    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
} 

//capitalzies string 
function capitalize(str) { 
    var first = str.charAt(0).toUpperCase(); 
    str = str.replace(/^.{1}/, first); 
    return str; 
} 

// get's the GET paramters like so --> $_GET('var1'); 
function getVar(variable) { 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i = 0; i < vars.length; i++) { 
     var pair = vars[i].split("="); 
     if (pair[0] == variable) { 
      return pair[1]; 
     } 
    } 
    return (false); 
} 

// Checks for one of TWO access short codes 
// includeOnly && excludeOnly 

// If includeOnly is not NULL, then ONLY include 
// categories mentioned in that varaible. 
// Also, cookie the data, that it's saved. 

// Of course, if anyone re-visits the site, and 
// re-writes the GET paramter, it'd delete all 
// previous data in the cookie. 

var token_code = ["authtoken", "excludeOnly"]; 
var asc = ""; //this is used to select the CURRENT access short code 
var tokenValues = []; 

//first check if there are ANY get params. 
if (getVar(token_code[0]) != false) { 
    //before writing the inlcude only, delete EXCLUDE only 
    DeleteCookie(token_code[1]); 

    SetCookie(token_code[0], getVar(token_code[0])); 
} 
if (getVar(token_code[1]) != false) { 
    //before writing the EXCLUDE only, delete include only 
    DeleteCookie(token_code[0]); 

    SetCookie(token_code[1], getVar(token_code[1])); 
} 

//Try and reaad the cookie (there should be a cookie named "includeOnly" or "excludeOnly -- both from token_code) 

//includeOnly is present? 
if (ReadCookie(token_code[0]).toString().length > 0) { 
    //defines what the user wants to do. Exlcude or include? when token_code[0] it's include! 
    asc = token_code[0]; 

    var tokens = ReadCookie(asc).toString(); 

    tokenValues = decodeURIComponent(tokens).split(','); 

    //loop through each category. 

    //hide every category and it's children 
    $("[data-token]").hide(); 

    $.each(tokenValues, function (index, value) { 
     //show every category, and it's childen, for the values 
     $("[data-token='" + value + "']").show(); 
    }); 
} 

//excludeOnly is present? 
if (ReadCookie(token_code[1]).toString().length > 0) { 
    //defines what the user wants to do. Exlcude or include? when token_code[0] it's include! 
    asc = token_code[1]; 

    var tokens = ReadCookie(asc).toString(); 

    tokenValues = decodeURIComponent(tokens).split(','); 

    //loop through each category. 

    //hide every category and it's children 
    $("[data-token]").show(); 

    $.each(tokenValues, function (index, value) { 
     //show every category, and it's childen, for the values 
     $("[data-token='" + value + "']").hide(); 
    }); 
} 

有更簡單的方式來做到這一點?

+1

不要編寫縮小的代碼,讓縮小器爲你做;) – veritas 2014-10-03 20:22:34

回答

0

在代碼的底部,註釋表明,它運行.hide()。 這可能是一個問題嗎?

//show every category, and it's childen, for the values 
$("[data-token='" + value + "']").hide();