JS魔法堂 獲取當前指令碼檔案的絕對路徑

2021-09-06 17:32:53 字數 1403 閱讀 1621

一、前言

當寫模組載入器時,獲取當前指令碼檔案的絕對路徑作為基礎路徑是必不可少的一步,下面我們一起來**一下這個問題吧!

二、各大瀏覽器的實現方式

[a]. chrome和ff

超簡單的一句足矣!

var getcurrabspath =function();

這裡利用了物件 document.currentscript ,它返回的是當前執行的script元素;然後呼叫script元素的src屬性即可獲取指令碼檔案的絕對路徑。

[b]. ie10+、safari和opera9

利用error物件的stack屬性(ie10+)、sourceurl屬性(safari)和stacktrace屬性(opera9)萃取絕對路徑

遍歷文件中的script標籤

var getcurrabspath =function()

}};

三、相關知識介紹

ie5.5~9下script的readystate表示該script元素的狀態,分別有以下的狀態值:

uninitialized:未初始化

loading:正在載入

loaded:載入完成

interative:執行中

complete:執行完

可通過訂閱onreadystatechange事件來監聽script元素狀態的變化。但不幸的是loaded和complete狀態並出現順序不定且有可能僅出現其中乙個,因此建議在動態新增script元素時,先設定src屬性後再將script元素新增到dom樹中,這樣loaded和complete狀態僅會出現其中乙個(雖然每次請求時,哪個出現是不定的),比較好監測。

四、ie和ff下的另一種方式

通過訂閱 window.onerror 事件,事件處理函式將接受三個引數,分別是msg,url和num。這裡url就是當前指令碼的絕對路徑了。

五、總結

完整的getcurrabspath

JS魔法堂 獲取當前指令碼檔案的絕對路徑

一 前言 當寫模組載入器時,獲取當前指令碼檔案的絕對路徑作為基礎路徑是必不可少的一步,下面我們一起來 一下這個問題吧!二 各大瀏覽器的實現方式 a chrome和ff 超簡單的一句足矣!var getcurrabspath function 這裡利用了物件 document.currentscrip...

JS魔法堂 獲取當前指令碼檔案的絕對路徑

一 前言 當寫模組載入器時,獲取當前指令碼檔案的絕對路徑作為基礎路徑是必不可少的一步,下面我們一起來 一下這個問題吧!二 各大瀏覽器的實現方式 a chrome和ff 超簡單的一句足矣!var getcurrabspath function 這裡利用了物件 document.currentscrip...

Python 獲取當前指令碼檔案路徑目錄

coding cp936 importsys,os 獲取指令碼檔案的當前路徑 defcur file dir 獲取指令碼路徑 path sys.path 0 判斷為指令碼檔案還是py2exe編譯後的檔案,如果是指令碼檔案,則返回的是指令碼的目錄,如果是py2exe編譯後的檔案,則返回的是編譯後的檔案...