在你的jsp或者h(yuǎn)tml文件中,如果涉及到引用其他資源文件時,用的路徑,如果是直接寫成你樣例這種,就是絕對路徑,比如
我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、欽北ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的欽北網(wǎng)站制作公司
script src="browser/main/a.js" /
如果帶有./或者../的,就是相對路徑,比如
script src="../111.js" /
就是要引用當(dāng)前這個文件上級目錄的111.js文件。
建議在一個工程中,需要引用的資源目錄,盡量使用絕對路徑,只要你不加.和/,就是工程主目錄下的絕對路徑,有利于整體規(guī)劃。
一旦你用了相對路徑,別人在看你代碼的時候,需要一層一層的去找,而且也不利于代碼的復(fù)制,一旦復(fù)制到別的地方,層次與你現(xiàn)在的不一樣,還得修改層次,增加.和/。
這篇文章主要介紹了Javascript中使用A標(biāo)簽獲取當(dāng)前目錄的絕對路徑方法,本文講解的方法比較特別,需要的朋友可以參考下
一談到路徑相關(guān)的問題,大家都會往window.location上想,確實這個對象提供了相當(dāng)多的路徑信息,其中常用的就包括:
1.location.href:當(dāng)前頁面的完整URL
2.location.pathname:當(dāng)前URL中的路徑名
3.location.hash:當(dāng)前URL中的錨點
4.location.search:當(dāng)前URL中的查詢參數(shù)
然而,location沒有一個屬性能直接獲得當(dāng)前目錄(不含文件名)的絕對路徑。通過Google我發(fā)現(xiàn)了一些錯誤的方法,比如說把URL通過“/”分離成數(shù)組,把數(shù)組的最后一項去掉以后再連接成字符串。但如果URL中沒有指定文件名,結(jié)果就大錯特錯了。
根據(jù)以往編碼的經(jīng)驗,a元素的href屬性總是會返回絕對路徑,也就是說它具有把相對路徑轉(zhuǎn)成絕對路徑的能力。使用下面的代碼嘗試了一下,果然成了:
代碼如下:
var
a
=
document.createElement('a');
a.href
=
'./';
alert(a.href);
a
=
null;
很不幸地,此方法在老舊的IE
6/7下無效,當(dāng)執(zhí)行alert(a.href)時,彈出的仍然是“./”。后來,我發(fā)現(xiàn)在Stackoverflow上也有人提出了這個問題,而解決方法也是很簡單的,只要把a通過innerHTML注入就可以了:
代碼如下:
var
div
=
document.createElement('div');
div.innerHTML
=
'a
href="./"/a";
alert(div.firstChild.href);
div
=
null;
有人可能會問:為何不用正則表達(dá)式?我的答案是:要考慮有無文件名的情況、有無錨點的情況、有無查詢參數(shù)的情況,這條正則表達(dá)式可能會挺復(fù)雜的。
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);
}
}
路徑,文件名就不得而知了
是用絕對路徑轉(zhuǎn)的。
內(nèi)容拓展:
一、JavaScript一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶端的腳本語言,最早是在HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)網(wǎng)頁上使用,用來給HTML網(wǎng)頁增加動態(tài)功能。
二、在1995年時,由Netscape公司的Brendan Eich,在網(wǎng)景導(dǎo)航者瀏覽器上首次設(shè)計實現(xiàn)而成。因為Netscape與Sun合作,Netscape管理層希望它外觀看起來像Java,因此取名為JavaScript。但實際上它的語法風(fēng)格與Self及Scheme較為接近。
三、為了取得技術(shù)優(yōu)勢,微軟推出了JScript,CEnvi推出ScriptEase,與JavaScript同樣可在瀏覽器上運行。為了統(tǒng)一規(guī)格,因為JavaScript兼容于ECMA標(biāo)準(zhǔn),因此也稱為ECMAScript。
../ 表示上級目錄。
這是相對路徑,做網(wǎng)頁里面引用圖片、js、媒體文件、css等都經(jīng)常用到。
index.jsp 引用 jquery-1.4.3.js 那么:jquery-1.4.3.js 文件相對 index.jsp 的位置就是在 index.jsp 的上級目錄中的 js 文件夾內(nèi)。
哎,說得有點繞口,你這樣理解:
你在你電腦上建立一個 文件夾C,進(jìn) C 里面再新建一個 文件夾D。你再進(jìn) D 里面去,然后在 D 里面你把 ../ 這個東西直接看作文件夾內(nèi)的 向上按鈕 ,寫一個 ../ 等于你按下了一次向上。
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;}
_蔥械慕峁?fàn)?
_athName===/test/index.jsp
_esult===/test
_褂梅椒ǎ嚎梢栽_s中用此方法拼接URL:getPath()+/路徑1/路徑2/........
_avaScript(簡稱“JS”) 是一種具有函數(shù)優(yōu)先的輕量級,解釋型或即時編譯型的 編程語言 。
_淙凰親魑? Web 頁面的 腳本語言 而出名,但是它也被用到了很多非 瀏覽器 環(huán)境中,
_avaScript 基于原型編程、多范式的動態(tài)腳本語言,并且支持面向?qū)ο蟆⒚钍胶吐暶魇剑ㄈ?函數(shù) 式編程)風(fēng)格。.
當(dāng)前文章:javascript路徑,js獲取訪問路徑
標(biāo)題URL:http://muchs.cn/article4/phshie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、虛擬主機(jī)、網(wǎng)站維護(hù)、商城網(wǎng)站、Google、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)