标签:javascript 脚本
其实为js文件传参是很久就接触过的一个问题,只是一直没有放在心上,今日总结一下。
解决思路:
1、首先获取到当前JS文件的SRC属性,这里有一个小技巧:我们只需要获取当前页面最后一个script标记内容即可。
为什么??因为JS是顺序解析的,当前JS脚本解析时后面的js都还没有解析到,当然就认为自己就是最后一个script了。此外,这样获取还有一个好处:我们可以多次引用同一个文件且传入不同的参数,这样可以在js文件中根据参数不同做不同处理,很巧妙把!简直就是动态语言了。
var loadUrl = document.getElementsByTagName("script")[0].getAttribute("src");
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.参考文献
标签:javascript 脚本
原文地址:http://blog.csdn.net/cuiwjava/article/details/43673897