從頁面向js傳值

Js代碼javascript

$(function() { 
    //從頁面獲得參數 
    var getArgs = (function() { 
        var sc = document.getElementsByTagName('script'); 
        var paramsArr = sc[sc.length - 1].src.split('?')[1].split('&'); 
        var args = {}, argsStr = [], param, t, name, value; 
        for ( var i = 0, len = paramsArr.length; i < len; i++) { 
            param = paramsArr[i].split('='); 
            name = param[0], value = param[1]; 
            if (typeof args[name] == "undefined") { // 參數尚不存在 
                args[name] = value; 
            } else if (typeof args[name] == "string") { // 參數已經存在則保存爲數組 
                args[name] = [ args[name] ] 
                args[name].push(value); 
            } else { // 已是數組的 
                args[name].push(value); 
            } 
        } 
        /* 在實際應用中下面的showArg和args.toString能夠刪掉,這裏只是爲了測試函數getArgs返回的內容 */ 
        var showArg = function(x) { // 轉換不一樣數據的顯示方式 
            if (typeof (x) == "string" && !/\d+/.test(x)) 
                return "'" + x + "'"; // 字符串 
            if (x instanceof Array) 
                return "[" + x + "]" // 數組 
            return x; // 數字 
        } 
        // 組裝成json格式 
        args.toString = function() { 
            for ( var i in args) 
                argsStr.push(i + ':' + showArg(args[i])); 
            return '{' + argsStr.join(',') + '}'; 
        } 
        return function() { 
            return args; 
        } // 以json格式返回獲取的全部參數 
    })(); 
}); html

 有這個方法就能夠從頁面上向js傳參數了
 
Html代碼 
<script src="../example.js?id=1" type="text/javascript"></script> 
 例如在頁面裏有引用example.js並傳參等於1的id,那麼咱們在example.js裏用getArgs()[id] 就能獲得id的值 做者「fresh-daily」java

原文出自:http://www.2cto.com/kf/201109/102545.htmljson

相關文章
相關標籤/搜索