js获取相对路径

avatar 2017年09月07日22:32:24 1 4058 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
今天在整理代码的时候,准备把 所以的 jsp 页面内的 js 代码都移到 js 文件中。遇到了一点小问题。

比如,先看下面这段代码,是在 idnex.jsp 里的。
  1. <script type="text/javascript">
  2.     $(".applyLink").click(function () {
  3.         //iframe层-禁滚动条
  4.         layer.open({
  5.             title:'申请友链',
  6.             type: 2,
  7.             area: ['455px', '480px'],
  8.             skin: 'layui-layer-rim', //加上边框
  9.             content: ['${pageContext.request.contextPath}/apply-link', 'no'],
  10.         });
  11.     });
  12. </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;



以上方法都不能直接拿来用,需要我们自己组合,最终得到以下方法。
  1. //获取相对路径
  2. function  getPath(){
  3.     var pathName = document.location.pathname;
  4.     var index = pathName.substr(1).indexOf("/");
  5.     var result = pathName.substr(0,index+1);
  6.     return result;
  7. }



本文链接:https://liuyanzhao.com/6203.html
  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0