A页面html页面中代码:
<script src="XXX.js?para=1234"></script>B页面html页面中代码:
<script src="XXX.js?para=abcd"></script>XXX.js代码:$(function(){ //这儿如何根据被包含的页面获取不同的参数?//如使用<script ID=""> 方式则这儿ID不好写//如使用document.getscript() 则打开A页面没问题,再打开B也没问题,再切回A出错(使用easy ui 的TAB切换)});

解决方案 »

  1.   

    XXX.js代码:(function () {
    var para = $("script").eq(-1).attr("src").replace(/.+\?para=/i,"");
    $(function(){
    alert(para);
    });
    })();
      

  2.   


    这方法与 var scripts = document.getElementsByTagName('script'); 是一样的,不能解决问题:
    1、XX.js被引用时不一定是最后一个文件(位置不固定);
    2、就算人为的放在最后一个,当打开多个tab时(每个tab加载一个HTML文件),初次打开是正确的,但tab打开后再切换就全错了
      

  3.   

    不要放domready,直接获取var scripts = document.getElementsByTagName('script');,获取最后一个script就是当前的script,自己分析src获取参数Web开发学习资料推荐
    JavaScript apply与call的用法及区别
    javascript客户端图片预览
      

  4.   

    window.onload=function(){
    var scripts = document.scripts;
    var idnum="";
    for(var i=0;i<scripts.length;i++){
    var src=scripts[i].src;
    if(src.match(/main.js/g)){       //匹配指定js文件
    idnum=src.match(/\?para=[a-zA-z0-9]+/g);  //获取参数,正则表达式自己写
    }
    }
    console.log(idnum);
    }
      

  5.   

    就是 currentScript 要在 $(function() { .... }) 外面先获取
    var currentScript = document.currentScript || document.scripts[document.scripts.length-1];
    $(function () {
        var para = (currentScript.src.replace(/[?&]para=([^&]*)/i) || ["", ""])[1];
        alert(para)
    });
      

  6.   


    var currentScript = document.currentScript || document.scripts[document.scripts.length-1];
    $(function () {
        var para = (currentScript.src.match(/[?&]para=([^&]*)/i) || ["", ""])[1];
        alert(para)
    });
      

  7.   


    这方法与 var scripts = document.getElementsByTagName('script'); 是一样的,不能解决问题:
    1、XX.js被引用时不一定是最后一个文件(位置不固定);
    2、就算人为的放在最后一个,当打开多个tab时(每个tab加载一个HTML文件),初次打开是正确的,但tab打开后再切换就全错了你测试了没有。
    非事件中的js代码是在页面加载阶段从上到下一边加载一边执行的,
    只要是在直接执行的(非事件中的)js代码中获取当前页面最后一个script,就是当前代码所在的script