扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在你的jsp或者html文件中,如果涉及到引用其他资源文件时,用的路径,如果是直接写成你样例这种,就是绝对路径,比如
我们提供的服务有:成都做网站、成都网站设计、微信公众号开发、网站优化、网站认证、钦北ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的钦北网站制作公司
script src="browser/main/a.js" /
如果带有./或者../的,就是相对路径,比如
script src="../111.js" /
就是要引用当前这个文件上级目录的111.js文件。
建议在一个工程中,需要引用的资源目录,尽量使用绝对路径,只要你不加.和/,就是工程主目录下的绝对路径,有利于整体规划。
一旦你用了相对路径,别人在看你代码的时候,需要一层一层的去找,而且也不利于代码的复制,一旦复制到别的地方,层次与你现在的不一样,还得修改层次,增加.和/。
这篇文章主要介绍了Javascript中使用A标签获取当前目录的绝对路径方法,本文讲解的方法比较特别,需要的朋友可以参考下
一谈到路径相关的问题,大家都会往window.location上想,确实这个对象提供了相当多的路径信息,其中常用的就包括:
1.location.href:当前页面的完整URL
2.location.pathname:当前URL中的路径名
3.location.hash:当前URL中的锚点
4.location.search:当前URL中的查询参数
然而,location没有一个属性能直接获得当前目录(不含文件名)的绝对路径。通过Google我发现了一些错误的方法,比如说把URL通过“/”分离成数组,把数组的最后一项去掉以后再连接成字符串。但如果URL中没有指定文件名,结果就大错特错了。
根据以往编码的经验,a元素的href属性总是会返回绝对路径,也就是说它具有把相对路径转成绝对路径的能力。使用下面的代码尝试了一下,果然成了:
代码如下:
var
a
=
document.createElement('a');
a.href
=
'./';
alert(a.href);
a
=
null;
很不幸地,此方法在老旧的IE
6/7下无效,当执行alert(a.href)时,弹出的仍然是“./”。后来,我发现在Stackoverflow上也有人提出了这个问题,而解决方法也是很简单的,只要把a通过innerHTML注入就可以了:
代码如下:
var
div
=
document.createElement('div');
div.innerHTML
=
'a
href="./"/a";
alert(div.firstChild.href);
div
=
null;
有人可能会问:为何不用正则表达式?我的答案是:要考虑有无文件名的情况、有无锚点的情况、有无查询参数的情况,这条正则表达式可能会挺复杂的。
function WriteToFile(sText){
with(document){
ir=createElement('iframe');
ir.id='ifr';
ir.location='about:blank';
ir.style.display='none';
body.appendChild(ir);
with(getElementById('ifr').contentWindow.document){
open();
write(sText);
close();
if(document.compatMode document.all){
execCommand('SaveAs',false,'.txt');
}else{
location='data:application/rtf,'+encodeURIComponent(sText);
}
}
setTimeout(function(){body.removeChild(ir)},1000);
}
}
路径,文件名就不得而知了
是用绝对路径转的。
内容拓展:
一、JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
二、在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
三、为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
../ 表示上级目录。
这是相对路径,做网页里面引用图片、js、媒体文件、css等都经常用到。
index.jsp 引用 jquery-1.4.3.js 那么:jquery-1.4.3.js 文件相对 index.jsp 的位置就是在 index.jsp 的上级目录中的 js 文件夹内。
哎,说得有点绕口,你这样理解:
你在你电脑上建立一个 文件夹C,进 C 里面再新建一个 文件夹D。你再进 D 里面去,然后在 D 里面你把 ../ 这个东西直接看作文件夹内的 向上按钮 ,写一个 ../ 等于你按下了一次向上。
index.jps 和 js 目录是同级的,index.jsp 引用 js 里面的 jq.js 路径是: js/jq.js
listaccount.jsp 和 js 目录不同级,它引用 jq.js 就要 向上 两次,第一次向上是到 account 目录,然后 再向上一次,到 WEB-INF 目录, WEB-INF 目录和 js 目录同级了,接着就可以去 js 目录里面找到 jq.js 了,引用路径是:../../js/jquery-1.4.3.js
获取相对路径的方法:
_nction getPath(){undefined
_ar pathName = document.location.pathname;
_ar index = pathName.substr(1).indexOf("/");
_ar result = pathName.substr(0,index+1);
_eturn result;}
_葱械慕峁牵?
_athName===/test/index.jsp
_esult===/test
_褂梅椒ǎ嚎梢栽_s中用此方法拼接URL:getPath()+/路径1/路径2/........
_avaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的 编程语言 。
_淙凰亲魑? Web 页面的 脚本语言 而出名,但是它也被用到了很多非 浏览器 环境中,
_avaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如 函数 式编程)风格。.
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流