首页 > 建站教程 > JS、jQ、TS >  script引入的js内获取js引入地址上的参数正文

script引入的js内获取js引入地址上的参数

需求描述

甲方要求写一个js,引入到他们的很多页面上,能在页面右下角弹出内容,并且,引入的js中要有参数,弹出内容要根据这个参数来回显。方法有两种:


1、通过地址拼接参数方法,类似于url传参:

<script src="./show.js?id=15sadefz9dsfeskg&width=100&height=100"></script>


show.js里获取参数的方法:

var id, width, height;
var scripts = document.getElementsByTagName("script");
for (var i=0; i< scripts.length;i++) {
    var script = scripts[i];
    if (script && script.getAttribute("src") && script.getAttribute("src").indexOf("show.js")>-1) {
        var url = script.getAttribute("src");
        var params = url.substr(url.indexOf("?")+1).split("&");
        for (var i=0;i<params.length;i++){
            var kv = params[i].split("=");
            var key = kv[0];
            var value = kv[1];
            if("id" == key) {
                id = value;
            }
            if("width" == key) {
                width = value;
            }
            if("height" == key) {
                height = value;
            }
        }
    }
}


2、通过自定义属性的方式获取:

<script src="./show.js" id="15sadefz9dsfeskg" width="100" height="100"></script>


show.js里获取参数的方法:

var id, width, height;
var scripts = document.getElementsByTagName("script");
for (var i=0; i<scripts.length; i++) {
    var script = scripts[i];
    if (script && script.getAttribute("src") && script.getAttribute("src").indexOf("show.js")>-1) {
        if(script.getAttribute("id")){
        id = script.getAttribute("id");
        }
        if(script.getAttribute("width")){
        width = script.getAttribute("width");
        }
        if(script.getAttribute("height")){
        height = script.getAttribute("height");
        }
    }
}


以上两种方式,第二种更加优雅,看个人喜好。