给js文件传递参数

其实为js文件传参是很久就接触过的一个问题,只是一直没有放在心上,今日总结一下。

解决思路:

1、首先获取到当前JS文件的SRC属性,这里有一个小技巧:我们只需要获取当前页面最后一个script标记内容即可。
为什么??因为JS是顺序解析的,当前JS脚本解析时后面的js都还没有解析到,当然就认为自己就是最后一个script了。此外,这样获取还有一个好处:我们可以多次引用同一个文件且传入不同的参数,这样可以在js文件中根据参数不同做不同处理,很巧妙把!简直就是动态语言了。

var loadUrl = document.getElementsByTagName("script")[0].getAttribute("src");


得到这个就好办了,通过loadUrl 获取到完整的路径内容(包括参数)。

2、解析参数内容。

function getCode(url,parm) {
		console.log(" url  "+url);
       var reg = new RegExp("(^|&)"+ parm +"=([^&]*)(&|$)");
       var r = url.substr(url.indexOf("\?")+1).match(reg);
       if (r!=null) return unescape(r[2]); return null;
 };
var result = getCode.call(this,loadUrl,"userCode");
alert(result);
3.测试示例的HTML源码:

<pre name="code" class="html"><!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" <span style="color:#FF0000;">src="test.js?userCode=1"</span> ></script>
    <title></title>
</head>
<body>
</body>
</html>


输出结果是1


4.参考文献


http://blog.csdn.net/a9529lty/article/details/4168916

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。