以前定义想在JS中获取contextPath路径的方法大概也就是在JSP页面中写上这么一段代码:
- <script type="text/javascript">
- </script>
然后这个$ctx参数才能在其他JS文件中获取到。
伦理片 http://www.dotdy.com/
但这对于笔者这种代码强迫症“患者”来说,无疑是比较痛苦的,因为它要写一个额外的script标签。笔者在浏览一些网站时,突然看到有很多JS引用后面携带了参数,于是折腾了一会儿,下面就提供一种另类的解决方案:
- <script src="mine.js?ctx=<%=uesttextPath()%>" type="
然后在mine.js中开头写上这么一句话:
- var js=document.scripts;
- var url=js[js.length-1].src;
- var r = url.substr(1).match(reg);
- }
这里面一个非常重要的一点在于,如果页面中有很多js引用,而mine.js无论插在开头还是末尾亦或中间,var url=js[js.length-1].src;这一行代码都能获取到mine.js自身的url。
这其中的原因大致就是JS从上到下解释执行模式所带来的一个小福利了。