今天在整理代码的时候,准备把 所以的 jsp 页面内的 js 代码都移到 js 文件中。遇到了一点小问题。
比如,先看下面这段代码,是在 idnex.jsp 里的。
这个代码的作用是,当点击 “申请链接”按钮,会弹出一个层(使用了layer插件),主要看第 10 行。
这里的 ${pageContext.request.contextPath} 是 jsp 的 EL 表达式,只能在 jsp 文件才能解析,如果放在 js 文件,就会当成普通的字符串。
起初,我想有什么办法使 js 文件能接受 jsp 的变量或者 表达式。接受变量还是容易,不过也麻烦。
然后稍微思考一下,我们的目的不就是获取相对路径吗?
看看 js 里又没有方法。
查了一下,主要是这几个方法。
以上方法都不能直接拿来用,需要我们自己组合,最终得到以下方法。
本文链接:https://liuyanzhao.com/6203.html
比如,先看下面这段代码,是在 idnex.jsp 里的。
- <script type="text/javascript">
- $(".applyLink").click(function () {
- //iframe层-禁滚动条
- layer.open({
- title:'申请友链',
- type: 2,
- area: ['455px', '480px'],
- skin: 'layui-layer-rim', //加上边框
- content: ['${pageContext.request.contextPath}/apply-link', 'no'],
- });
- });
- </script>
这个代码的作用是,当点击 “申请链接”按钮,会弹出一个层(使用了layer插件),主要看第 10 行。
这里的 ${pageContext.request.contextPath} 是 jsp 的 EL 表达式,只能在 jsp 文件才能解析,如果放在 js 文件,就会当成普通的字符串。
起初,我想有什么办法使 js 文件能接受 jsp 的变量或者 表达式。接受变量还是容易,不过也麻烦。
然后稍微思考一下,我们的目的不就是获取相对路径吗?
看看 js 里又没有方法。
查了一下,主要是这几个方法。
1,设置或获取对象指定的文件名或路径。
alert(window.location.pathname)
2,设置或获取整个 URL 为字符串。
alert(window.location.href);
3,设置或获取与 URL 关联的端口号码。
alert(window.location.port)
4,设置或获取 URL 的协议部分。
alert(window.location.protocol)
5,设置或获取 href 属性中在井号“#”后面的分段。
alert(window.location.hash)
6,设置或获取 location 或 URL 的 hostname 和 port 号码。
alert(window.location.host)
7,设置或获取 href 属性中跟在问号后面的部分。
alert(window.location.search)
8,获取变量的值(截取等号后面的部分)
var url = window.location.search;
// alert(url.length);
// alert(url.lastIndexOf('='));
var loc = url.substring(url.lastIndexOf('=')+1, url.length);
9,用来得到当前网页的域名
var domain = document.domain;
以上方法都不能直接拿来用,需要我们自己组合,最终得到以下方法。
- //获取相对路径
- function getPath(){
- var pathName = document.location.pathname;
- var index = pathName.substr(1).indexOf("/");
- var result = pathName.substr(0,index+1);
- return result;
- }
本文链接:https://liuyanzhao.com/6203.html
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏