1. 程式人生 > >JS獲取當前指令碼的路徑

JS獲取當前指令碼的路徑

今天遇到一個很坑的bug,有一個功能在IE10和chrome上是好的,在Edge上是壞的,最後發現原來是外部引用的指令碼庫中的一個功能函數出錯導致的。
還有一點,Edge的圖片和指令碼載入失敗,控制檯竟然不報錯!!!這真的是個巨坑啊!!!

好了,下面直接給出結果

function  getScriptPath(name){
	var jsPath =  document.currentScript ? document.currentScript : function(){
		var src = '',  scriptList = document.scripts;
		for( var i = scriptList.length; i > 0 ; i-- ){
			if( scriptList[i].src.indexOf(name) > -1 ){
				src = scriptList[i].src;
				break;
			}
		}
		return src;
	}();
	return  jsPath.substring(0, src.lastIndexOf('/')+1);;
}

其中document.currentScript可以直接獲取當前指令碼的路徑,但是目前測試IE不支援,在IE下只能使用document.scripts物件遍歷獲取。