js获取script参数

作者: Crick | 来源:发表于2018-04-06 23:47 被阅读29次

    转载请注明出处WangYuheng's Blog

    问题描述

    js插件挡住了页面元素,希望自定义js插件显示的布局位置。

    code

    <script>引入js插件时传递layout布局参数。

    1. 通过url参数方式获取

    js可以获取url中的参数

        if(location.href.indexOf("?")>-1) {
            var params = location.href.substr(location.href.indexOf("?")+1).split("&");
            for (var i=0;i<params.length;i++){
                var kv = params[i].split("=");
                var key = kv[0];
                var value = kv[1];
                console.log("key="+key+" value="+value);
            }
        }
    

    同理,可以先获取script标签中的src属性,再通过上面的方法,获取layout参数

        <script src="listen.js?layout=right"></script>
    

    在js插件文件中通过如下代码获取

        var layout="right";
        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("listen.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("layout" == key) {
                        layout = value;
                    }
                }
            }
            
        }
        console.log(layout);
    

    2. 通过自定义属性获取

    通过上面的方法,可以想到既然能获取src属性,那么也可以自定义布局属性,并通过getAttribute()方法获取。

        <script src="listen.js" layout="right"></script>
    

    在js插件文件中通过如下代码获取

        var layout="right";
        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("listen.js")>-1 && script.getAttribute("layout")) {
                layout = script.getAttribute("layout");
            }
        }
        console.log(layout);
    

    结论

    通过从代码上来看,第二种方法更简单,而问过几个朋友,都更喜欢第二种配置方式,所以在这里推荐使用自定义属性获取属性。

        <script src="listen.js?layout=right"></script>
        <script src="listen.js" layout="right"></script>
    

    相关文章

      网友评论

        本文标题:js获取script参数

        本文链接:https://www.haomeiwen.com/subject/xurehftx.html