var jsTrim = function(A){
    return A.replace(/(^[\s ]*)|([\s ]*$)/g, "")
};
function showItem(A){
    if (A.checked == true) {
        G("rempassItem").style.display = "block"
    }
    else {
        G("rempassItem").style.display = "none"
    }
}function userLogin(){
    switch (arguments.length) {
        case 0:
            relogin();
            break;
        case 1:
            loginflag.setLoginArr("loginSt", 0);
            loginflag.setLoginArr("loginUrl", arguments[0]);
            checkIfLogin();
            break;
        default:
            loginflag.setLoginArr("loginSt", 1);
            loginflag.setLoginArr("isDetect", arguments[0]);
            loginflag.setLoginArr("loginTip", arguments[1]);
            checkIfLogin();
            break
    }
}var reloginTimer = null;
function _login_to_passport(){
    var H = arguments.length;
    var E, D;
    switch (H) {
        case 0:
            break;
        case 1:
            E = arguments[0];
            break;
        default:
            E = arguments[0];
            D = arguments[1];
            break
    }
    var I = G("_username").value;
    var C = G("_password").value;
    var F = G("mem_pass").checked ? "on" : "off";
    if (jsTrim(C).length <= 0) {
        G("_password").value = "";
        G("_password").focus();
        return false
    }
    var B = "http://passport.baidu.com/?logt&t=1&keyname=relogin&mem_pass=" + F + "&username=" + I + "&loginpass=" + C + "&s=" + Math.random();
    var A = document.createElement("script");
    A.setAttribute("type", "text/javascript");
    A.setAttribute("src", B);
    document.getElementsByTagName("head")[0].appendChild(A);
    reloginTimer = setTimeout(checkReloginResult, 15000);
    A.onload = A.onreadystatechange = function(){
        if (this.readyState && this.readyState == "loading") {
            return
        }
        switch (H) {
            case 0:
                checkReloginResult();
                break;
            case 1:
                checkReloginResult(E);
                break;
            default:
                checkReloginResult(E, D);
                break
        }
    }
}var FAILEDS = 0;
function checkReloginResult(){
    clearTimeout(reloginTimer);
    reloginTimer = null;
    if (typeof PSP_relogin == "undefined" || 1 == PSP_relogin) {
        if (++FAILEDS > 2) {
            G("_r_username").value = G("_username").value;
            G("_r_password").value = G("_password").value;
            G("_redirect_form").submit()
        }
        else {
            delete PSP_relogin;
            G("login_error").style.display = ""
        }
    }
    else {
        switch (arguments.length) {
            case 0:
                afterLogin();
                break;
            case 1:
                afterLogin(arguments[0]);
                break;
            default:
                afterLogin(arguments[0], arguments[1]);
                break
        }
    }
}

解决方案 »

  1.   


    function afterLogin(){
        switch (arguments.length) {
            case 0:
                try {
                    UnloadConfirm.clear()
                } 
                catch (A) {
                }
                window.location = window.location.href;
                g_pop.close();
                break;
            case 1:
                window.location = arguments[0];
                g_pop.close();
                break;
            default:
                g_pop.close();
                if (loginflag.getLoginArr("isDetect") == 3) {
                    Detect.detecting()
                }
                else {
                    submitform()
                }
                break
        }
    }function relogin(){
        var C = "";
        switch (arguments.length) {
            case 0:
                C = "_login_to_passport()";
                break;
            case 1:
                C = "_login_to_passport('" + arguments[0] + "')";
                break;
            default:
                C = "_login_to_passport(" + arguments[0] + "," + arguments[1] + ")";
                break
        }
        var B = "window.open('http://passport.baidu.com/?reg&tpl=wk&u=" + escape(window.location) + "')";
        var A = ' <div class="popb2"> <div id="rgHandle">百度注册用户请直接登录</div> <div id="login_error" style="color:#F00;display:none;">登录密码错误,请重新输入</div> <form onsubmit="return false;"><table width="280" border="0" cellspacing="0" cellpadding="4"> <tr> <td width="56" class="f14"><label for="_userName">用户名:</label></td> <td width="156"><input class="loginItem" type="text" name="username" id="_username" value="" class="ip" tabindex="4"/></td> </tr> <tr>  <td class="f14"><label for="_password">密 码:</label></td> <td><input class="loginItem" type="password" name="password" id="_password" value="" class="ip" tabindex="5" /></td> </tr> <tr> <td colspan="2"> <span class="f13"><input name="mem_pass" id="mem_pass" type="checkbox" onclick="showItem(this)" tabindex="6">记住我的登录状态</span> </td> </tr> <tr> <td colspan="2" width="240"> <span class="item" id="rempassItem" >为了确保你的信息安全,请不要在网吧或者公共机房选择此项。</span></td> </tr> <tr>  <td>&nbsp;</td> <td style="font-size:12px;"> <input type="submit" onclick="' + C + '" name="Submit" value=" 登录 " tabindex="7" / >&nbsp;&nbsp;<a href="http://passport.baidu.com/?getpass" class="f12"target="_blank">忘记密码?</a></td> </tr> </table></form> <hr size="0" style="border-top:1px solid #AAAAAA"> <b class="f12">没有百度账号?</b><br > <input type="button" value="立即注册百度账号" class="regButton" onClick="' + B + '"> </div> ';
        g_pop = new Popup({
            contentType: 2,
            isReloadOnClose: false,
            width: 400,
            height: 300
        });
        g_pop.setContent("title", "登录到百度百科");
        g_pop.setContent("contentHtml", A);
        g_pop.build();
        g_pop.show();
        if (G("_username").value == "") {
            G("_username").focus()
        }
        else {
            G("_password").focus()
        }
        if (loginflag.getLoginArr("loginTip") == 1) {
            G("rgHandle").innerHTML = "您已经退出了百科百科,请重新登录"
        }
        else {
            G("rgHandle").innerHTML = "百度注册用户请直接登录"
        }
    }var offlineTimer;
    function checkIfLogin(){
        var B = "http://baike.baidu.com/login?s=" + Math.random();
        var A = document.createElement("script");
        A.setAttribute("type", "text/javascript");
        A.setAttribute("src", B);
        document.getElementsByTagName("head")[0].appendChild(A);
        offlineTimer = setTimeout(loginWarn, 15000)
    }function wiki_relogin(){
        clearTimeout(offlineTimer);
        if (arguments[0] == 1) {
            if (loginflag.getLoginArr("loginSt") == 0) {
                loginflag.setLoginArr("loginTip", 0);
                var B = loginflag.getLoginArr("loginUrl");
                var D = setParamURL(B);
                if (document.images) {
                    var A = new Image();
                    var C = addURLParam("/js/blank.js", "id", D);
                    A.src = addURLParam(C, "logTp", 0)
                }
                relogin(B)
            }
            else {
                relogin(loginflag.getLoginArr("isDetect"), loginflag.getLoginArr("loginTip"))
            }
        }
        else {
            if (loginflag.getLoginArr("loginSt") == 0) {
                window.location = loginflag.getLoginArr("loginUrl")
            }
            else {
                if (loginflag.getLoginArr("isDetect") == 3) {
                    Detect.detecting()
                }
                else {
                    submitform()
                }
            }
        }
    }function loginWarn(){
        var A = ' <br> <div style="font-size:14px;font-weight:bold;text-align:center;padding:10px 10px">请检查您的网络链接,重新进行提交</div> ';
        g_pop = new Popup({
            contentType: 2,
            isReloadOnClose: false,
            width: 350,
            height: 80
        });
        g_pop.setContent("title", "提示");
        g_pop.setContent("contentHtml", A);
        g_pop.build();
        g_pop.show()
    }function addURLParam(C, B, A){
        C += (C.indexOf("?") == -1 ? "?" : "&");
        C += B + "=" + A;
        return C
    }function setParamURL(B){
        if (B.indexOf("id=") != -1) {
            var A = (B.match(/id=\d+/).toString().substr(3));
            return A
        }
    }var loginFlag = function(){
    };
    (function loginStatus(){
        var A = new Array();
        A.loginTip = 0;
        loginFlag.prototype.setLoginArr = function(B, C){
            A[B] = C
        };
        loginFlag.prototype.getLoginArr = function(B){
            return A[B]
        }
    })();
    var loginflag = new loginFlag();