最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS獲取當(dāng)前腳本文件的絕對路徑

 更新時間:2016年03月02日 14:36:49   作者:^_^肥仔John  
這篇文章主要介紹了JS獲取當(dāng)前腳本文件的絕對路徑的相關(guān)資料,感興趣的小伙伴們可以參考一下

 當(dāng)寫模塊加載器時,獲取當(dāng)前腳本文件的絕對路徑作為基礎(chǔ)路徑是必不可少的一步,下面我們一起來探討一下這個問題吧!

一、各大瀏覽器的實現(xiàn)方式                

 [a]. Chrome和FF

 超簡單的一句足矣!

var getCurrAbsPath = function(){
 return document.currentScript.src;
};

這里利用了對象 document.currentScript ,它返回的是當(dāng)前執(zhí)行的script元素;然后調(diào)用script元素的src屬性即可獲取腳本文件的絕對路徑。

  [b]. IE10+、Safari和Opera9

 利用Error對象的stack屬性(IE10+)、sourceURL屬性(Safari)和stacktrace屬性(Opera9)萃取絕對路徑

var getCurrAbsPath = function(){
  var a = {}, stack;
  try{
   a.b();
  }
  catch(e){
   stack = e.stack || e.sourceURL || e.stacktrace; 
  }
  var rExtractUri = /(?:http|https|file):\/\/.*?\/.+?.js/, 
    absPath = rExtractUri.exec(stack);
  return absPath[0] || '';
}; 

  [C]. IE5.5~9

 遍歷文檔中的script標(biāo)簽

var getCurrAbsPath = function(){
  var scripts = document.scripts;
  var isLt8 = ('' + document.querySelector).indexOf('[native code]') === -1;
  for (var i = scripts.length - 1, script; script = scripts[i--];){
    if (script.readyState === 'interative'){
     return isLt8 ? script.getAttribute('src', 4) : script.src;  
    }
  }
};

二、相關(guān)知識介紹                      

IE5.5~9下script的readyState表示該script元素的狀態(tài),分別有以下的狀態(tài)值:

uninitialized:未初始化

loading:正在加載

loaded:加載完成

interative:執(zhí)行中

complete:執(zhí)行完

可通過訂閱onreadystatechange事件來監(jiān)聽script元素狀態(tài)的變化。但不幸的是loaded和complete狀態(tài)并出現(xiàn)順序不定且有可能僅出現(xiàn)其中一個,因此建議在動態(tài)添加script元素時,先設(shè)置src屬性后再將script元素添加到DOM樹中,這樣loaded和complete狀態(tài)僅會出現(xiàn)其中一個(雖然每次請求時,哪個出現(xiàn)是不定的),比較好監(jiān)測。

 三、IE和FF下的另一種方式                

 通過訂閱 window.onerror 事件,事件處理函數(shù)將接受三個參數(shù),分別是msg,url和num。這里url就是當(dāng)前腳本的絕對路徑了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論

济南市| 青龙| 祁阳县| 和林格尔县| 许昌市| 江都市| 理塘县| 德钦县| 张家川| 通辽市| 鹤山市| 吉首市| 筠连县| 临武县| 峨眉山市| 遂平县| 合川市| 汉阴县| 澳门| 金湖县| 彭泽县| 靖宇县| 仙居县| 榆中县| 突泉县| 南丹县| 永清县| 出国| 佛教| 阿克陶县| 武定县| 抚顺县| 始兴县| 沾益县| 梁平县| 肃宁县| 屏东县| 凌云县| 宣汉县| 托克逊县| 胶州市|