一、前言
當寫模組載入器時,獲取當前指令碼檔案的絕對路徑作為基礎路徑是必不可少的一步,下面我們一起來**一下這個問題吧!
二、各大瀏覽器的實現方式
[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:未初始化可通過訂閱onreadystatechange事件來監聽script元素狀態的變化。但不幸的是loaded和complete狀態並出現順序不定且有可能僅出現其中乙個,因此建議在動態新增script元素時,先設定src屬性後再將script元素新增到dom樹中,這樣loaded和complete狀態僅會出現其中乙個(雖然每次請求時,哪個出現是不定的),比較好監測。loading:正在載入
loaded:載入完成
interative:執行中
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編譯後的檔案,則返回的是編譯後的檔案...