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切换)});
<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切换)});
var para = $("script").eq(-1).attr("src").replace(/.+\?para=/i,"");
$(function(){
alert(para);
});
})();
这方法与 var scripts = document.getElementsByTagName('script'); 是一样的,不能解决问题:
1、XX.js被引用时不一定是最后一个文件(位置不固定);
2、就算人为的放在最后一个,当打开多个tab时(每个tab加载一个HTML文件),初次打开是正确的,但tab打开后再切换就全错了
JavaScript apply与call的用法及区别
javascript客户端图片预览
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);
}
var currentScript = document.currentScript || document.scripts[document.scripts.length-1];
$(function () {
var para = (currentScript.src.replace(/[?&]para=([^&]*)/i) || ["", ""])[1];
alert(para)
});
var currentScript = document.currentScript || document.scripts[document.scripts.length-1];
$(function () {
var para = (currentScript.src.match(/[?&]para=([^&]*)/i) || ["", ""])[1];
alert(para)
});
这方法与 var scripts = document.getElementsByTagName('script'); 是一样的,不能解决问题:
1、XX.js被引用时不一定是最后一个文件(位置不固定);
2、就算人为的放在最后一个,当打开多个tab时(每个tab加载一个HTML文件),初次打开是正确的,但tab打开后再切换就全错了你测试了没有。
非事件中的js代码是在页面加载阶段从上到下一边加载一边执行的,
只要是在直接执行的(非事件中的)js代码中获取当前页面最后一个script,就是当前代码所在的script