js获取相对路径

今天在整理代码的时候,准备把 所以的 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
  • 博客交流群
  • 海纳百川,大家来水
  • weinxin
言曌

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: