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