从js文件中获取传递给js文件的参数

问题:从js文件中如何或者传递给本js文件的参数?

思路:主要是获取script标签的src属性,然后分析src属性获取到传递的querystring参数。

关键:通过上面知道,获取当前script标签是关键。至于如何获取,有2中方法
1)可以给script标签块加一个ID,然后通过document.getElementById获取到
  a)缺点:需要手动添加script标签的ID
  b)优点:可以从其他script文件中获取到此script标签,注意其他script标签在DOM树中要处于此script标签之下,要不会找不到对象。或者在window.onload中调用
2)通过document.getElementsByTagName获取所有script标签,script标签数组的最后一项就是当前加载到script标签
  优点和缺点刚好和第一种方法相反


下面代码是通过第二种方法来实现

    var scripts = document.getElementsByTagName('script')//获所有script标签
    , script = scripts[scripts.length - 1]//获取当前加载到的script标签
//如果是ID,src=document.getElementById('script的Id').src
    , src = script.src//获取当前加载到的script标签的src属性
    ,QS = {};//用于存储键值对
    var querystring = /\.js?(.*)/i.exec(src);//获取去querystring参数
    if (querystring) { //传递了参数
        var m, reg = /([a-z\d]+)=([^&]+)/gi;//注意这里的键只能由字母和数字组成,如果包含其他字符,记得修改键的正则
        while (m = reg.exec(querystring)) QS[m[1].toLowerCase()] = m[2];
    }
    alert(QS['a'])
    alert(QS['b'])

 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:从js文件中获取传递给js文件的参数

评论(0)Web开发网
阅读(239)喜欢(0)JavaScript/Ajax开发技巧