多HTML页面引用同一个JS文件传递参数的问题

sysmaster 2018-03-05 02:06:01
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切换)

});
...全文
956 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2018-03-06
  • 打赏
  • 举报
回复
不要放domready,直接获取var scripts = document.getElementsByTagName('script');,获取最后一个script就是当前的script,自己分析src获取参数

Web开发学习资料推荐
JavaScript apply与call的用法及区别
javascript客户端图片预览
sysmaster 2018-03-06
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
XXX.js代码:

(function () {
	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打开后再切换就全错了
天际的海浪 2018-03-06
  • 打赏
  • 举报
回复
引用 3 楼 sysmaster 的回复:
[quote=引用 2 楼 jslang 的回复:] XXX.js代码:

(function () {
	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打开后再切换就全错了[/quote] 你测试了没有。 非事件中的js代码是在页面加载阶段从上到下一边加载一边执行的, 只要是在直接执行的(非事件中的)js代码中获取当前页面最后一个script,就是当前代码所在的script
wcwtitxu 2018-03-06
  • 打赏
  • 举报
回复

var currentScript = document.currentScript || document.scripts[document.scripts.length-1];
$(function () {
    var para = (currentScript.src.match(/[?&]para=([^&]*)/i) || ["", ""])[1];
    alert(para)
});
wcwtitxu 2018-03-06
  • 打赏
  • 举报
回复
就是 currentScript 要在 $(function() { .... }) 外面先获取

var currentScript = document.currentScript || document.scripts[document.scripts.length-1];
$(function () {
    var para = (currentScript.src.replace(/[?&]para=([^&]*)/i) || ["", ""])[1];
    alert(para)
});
qq_35269473 2018-03-06
  • 打赏
  • 举报
回复
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); }
天际的海浪 2018-03-05
  • 打赏
  • 举报
回复
XXX.js代码:

(function () {
	var para = $("script").eq(-1).attr("src").replace(/.+\?para=/i,"");
	$(function(){
		alert(para);
	});
})();
qq_35269473 2018-03-05
  • 打赏
  • 举报
回复

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧