`
hanzhdy
  • 浏览: 28572 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JS中获取contextPath的方法

阅读更多
以前定义想在JS中获取contextPath路径的方法大概也就是在JSP页面中写上这么一段代码:
<script type="text/javascript">
var $ctx='<%=request.getContextPath()%>';
</script>

然后这个$ctx参数才能在其他JS文件中获取到。

但这对于笔者这种代码强迫症“患者”来说,无疑是比较痛苦的,因为它要写一个额外的script标签。
笔者在浏览一些网站时,突然看到有很多JS引用后面携带了参数,于是折腾了一会儿,下面就提供一种另类的解决方案:
<script src="mine.js?ctx=<%=request.getContextPath()%>" type="text/javascript"></script>

然后在mine.js中开头写上这么一句话:
var js=document.scripts;
var url=js[js.length-1].src;
var $ctx=getQueryString(url,'ctx');
function getQueryString(url,name){
     var reg = new RegExp("(\\?|&)"+ name +"=([^&]*)(&|$)");
     var r = url.substr(1).match(reg);
     if(r!=null)return unescape(r[2]); return null;
}

这里面一个非常重要的一点在于,如果页面中有很多js引用,而mine.js无论插在开头还是末尾亦或中间,var url=js[js.length-1].src;这一行代码都能获取到mine.js自身的url。
这其中的原因大致就是JS从上到下解释执行模式所带来的一个小福利了。
0
1
分享到:
评论
2 楼 hanzhdy 2015-12-05  
lmf462696585 写道
楼主上下文词不达意,上面是获取contextPath,下面却变成了获取src。不过整体还是没有问题的。最后一段话这样写会更好:

这里面一个非常重要的一点在于,如果页面中有很多js引用,而mine.js无论插在开头还是末尾亦或中间,var ctx=$ctx;这一行代码都能获取到mine.js自身的$ctx。
这其中的原因大致就是JS从上到下解释执行模式所带来的一个小福利了。

因为我们最终是要获取contextPath,而不是不相干的src。


嗯,是我没表达清楚,但contextPath是拼接script的src中了,获取不到这个src,使用这个方法也就无法获取到contextPath
1 楼 lmf462696585 2015-12-05  
楼主上下文词不达意,上面是获取contextPath,下面却变成了获取src。不过整体还是没有问题的。最后一段话这样写会更好:

这里面一个非常重要的一点在于,如果页面中有很多js引用,而mine.js无论插在开头还是末尾亦或中间,var ctx=$ctx;这一行代码都能获取到mine.js自身的$ctx。
这其中的原因大致就是JS从上到下解释执行模式所带来的一个小福利了。

因为我们最终是要获取contextPath,而不是不相干的src。

相关推荐

    js中获取contextPath

    总之,获取`contextPath`是Web开发中的常见需求,通过在服务器端设置JavaScript变量或者利用`window.location`对象,可以方便地在JavaScript中获取并使用`contextPath`。理解并熟练掌握这一技巧,对于编写健壮的前端...

    tomato2009#note#thymeleaf 获取contextPath1

    2,获取session中通过setAttribute设置的值3,获取contextPath3.1 方式一3.2方式二某些时候,使用。

    JavaScript中${pageContext.request.contextPath}取值问题及解决方案

    在JavaScript中,${pageContext.request.contextPath}是一个特殊表达式,它源于JavaServer Pages (JSP) 的Expression Language (EL),用于获取当前请求的应用上下文路径。应用上下文路径是Web应用程序在服务器上的根...

    jsp页面中${pageContext.request.contextPath}介绍

    在JavaServer Pages (JSP) 开发中,${pageContext.request.contextPath} 是一个非常有用的表达式,它用于获取当前应用程序或项目的根路径。这个表达式是基于Java Servlet API的PageContext对象和HttpServletRequest...

    request.getcontextPath()_详解

    在JavaScript中,我们可以使用hidden input元素来传递Context Path,例如:&lt;input type="hidden" name="contextPath" value="()%&gt;" /&gt;,然后在JavaScript中,我们可以使用该Context Path来解决路径问题。 request....

    js 获取站点应用名的简单实例

    一直用EL表达式${pageContext.request.contextPath}来传递应用名,在用到JS中时,很麻烦,虽然也可以用,但是加大了代码复杂度,因此这里推荐用JS获取应用名 function getContextPath() { var contextPath = ...

    vue项目中在外部js文件中直接调用vue实例的方法比如说this

    总结一下,在Vue项目中在外部JS文件中直接调用Vue实例的方法,关键是要能够获取到Vue实例。一种常用的方法是在main.js中导出Vue实例,并在需要的地方引入这个实例。此外,本文还介绍了Vue项目中如何引入外部文件,...

    java中request.getcontextPath()的意思.doc

    &lt;input type="hidden" name="contextPath" value="()%&gt;"&gt; ``` 然后,在 JavaScript 代码中,我们可以使用这个值来获取当前项目的路径。 request.getcontextPath() 是一个非常重要的方法,它可以帮助我们解决相对...

    iOS 开发中,Swift 使用 JavaScriptCore 与 JS 进行交互.zip

    同样,你可以获取JavaScript中的函数并作为JSValue调用。例如: ```swift let jsFunction = context?["javascriptFunction"] as? JSValue let result = jsFunction?(withArguments: [JSValue(123, in: context!...

    jsp运行时的问题集合

    开发者需要理解`()%&gt;`获取应用的根路径,以及如何正确引用静态资源如CSS、JavaScript文件和图片。 3. **jdbc连接sqlserver2005.txt** 连接SQL Server 2005需要合适的驱动,如Microsoft JDBC Driver。文件可能详细...

    js实现html中的pdf文件的在线预览、下载、打印等功能

    在现代Web应用中,JavaScript(JS)经常被用来增强用户体验,其中包括处理各种文件类型,如PDF。本篇文章将深入探讨如何使用JavaScript实现HTML中的PDF文件在线预览、下载以及打印功能。我们将首先介绍相关的...

    js读pdf文件

    在JavaScript(js)中读取PDF文件是一项常见的需求,特别是在Web开发中,用户可能需要预览、下载或处理PDF文档。Google Chrome等现代浏览器提供了良好的API支持,使得开发者能够利用JavaScript实现这一功能。本篇...

    在uni-app中使用pdf.js实现在手机上打开pdf

    `loadDocument`方法使用PDF.js的`getDocument`方法获取PDF文档对象。然后,`renderPage`方法负责渲染每个页面。注意,`renderPage`内部使用了Promise来处理异步操作,确保页面渲染的顺序正确。 此外,你可能还需要...

    pdf.js&pdf;.worker.js

    PDF.js 是一个开源的JavaScript库,由Mozilla基金会开发,用于在Web浏览器中渲染PDF文档,无需依赖任何插件。它的核心目标是提供一种跨平台、跨浏览器的方式,让用户能够顺畅地查看PDF文件,提升Web应用的用户体验。...

    js定制模板

    var url = "&lt;s:property value='contextPath'/&gt;/iniPruductDataSource.action"; jsUtil.ajaxJSONUtil(url, "", function(data) { ... }); ``` 3. **数据绑定与渲染**: 获取到数据后,遍历数据列表,并使用`...

    JS实现图片旋转

    在图片旋转中,我们主要使用`canvas`元素和与其相关的`context`对象提供的方法。 1. **加载图片**:首先,我们需要获取到图片资源。这通常通过创建一个`Image`对象,并设置其`src`属性来实现。当图片加载完成时,会...

    jquery.i18n.properties和jquery.easyui.min

    path : $.contextPath+"/i18n/"+i18nLanguage+"/", //资源文件路径 mode : 'map', //用Map的方式使用资源文件中的值 language : i18nLanguage, cache:false, //指定浏览器是否对资源文件进行缓存,默认false ...

    3_web_

    3. **Context Path**:在Web应用中,Context Path表示Web应用在服务器上的唯一标识,它是服务器解析请求时的起点。获取文件路径时,通常需要结合Context Path来构造完整的URL或文件路径。 4. **Servlet API中的文件...

Global site tag (gtag.js) - Google Analytics