国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

關(guān)于laydate.js加載laydate.css路徑錯(cuò)誤問(wèn)題解決

2024-05-06 16:41:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

laydate.js是屬于Javascript系列的一款日期控件與時(shí)間插件,laydate.js支持兼容IE6在內(nèi)的主流瀏覽器。laydate.js經(jīng)過(guò)賢心大大的重寫(xiě)之后功能越來(lái)越強(qiáng)大,用起來(lái)也愈漸靈活了,但是在一個(gè)基于angular+ocLazyLoad的項(xiàng)目中出了點(diǎn)問(wèn)題。

發(fā)現(xiàn)問(wèn)題

laydate.js是通過(guò)ocLazyLoad異步加載引入的,結(jié)果始終加載不出來(lái)laydate.css文件,看了下路徑錯(cuò)誤,于是扒開(kāi)代碼發(fā)現(xiàn)是這樣寫(xiě)的:

getPath:function(){ var e=document.scripts, t=e[e.length-1], n=t.src; if(!t.getAttribute("merge")) return n.substring(0,n.lastIndexOf("/")+1)}()

它是需要先獲取到laydate.js的路徑,然后再加上laydate.css的那一截最終拼接成一個(gè)完整的路徑。

作者用的獲取laydate.js路徑的思路是:由于判斷路徑的js代碼一般都直接放在js文件中而不是函數(shù)中,所以當(dāng)加載該js文件時(shí)會(huì)立即執(zhí)行其中的語(yǔ)句,而執(zhí)行此語(yǔ)句時(shí)所獲取到的js文件數(shù)目正好是e.length-1,因?yàn)轫?yè)面后面的js文件還沒(méi)有加載,所以該處的js文件獲取的數(shù)目并不是頁(yè)面所有的js文件的數(shù)目。這樣一來(lái),獲取路徑就無(wú)需再遍歷了,而且文件判斷也無(wú)需文件名,判斷更加準(zhǔn)確(e.length-1永遠(yuǎn)都是其文件本身)。

但是這種方法有缺陷,直接在html頁(yè)面中用script標(biāo)簽引入沒(méi)得問(wèn)題,如果通過(guò)document.write("<script src='*.js'></script")document.createElement("script")動(dòng)態(tài)加載亦或者異步加載等得到的路徑卻是最后一個(gè)js文件的路徑,而非當(dāng)前j文件的路徑。

于是想起了document.currentScript ,一步就能到位,但是存在一定的兼容性問(wèn)題。

var curSrc = document.currentScript.src;return curSrc.substring(0,curSrc.lastIndexOf("/")+1);

最終還是使用了下面這種簡(jiǎn)單粗暴的方法:

getPath:function(){ var e=document.scripts, n; for(var i=e.length;i>0;i--){ if(e[i-1].src.indexOf("laydate.js")>-1){ n=e[i-1].src.substring(0,e[i-1].src.lastIndexOf("/")+1); } } return n;}()

這種方法的思路很清晰,根據(jù)文件名獲取引用的文件的src屬性并進(jìn)行判斷截取即可。但這種辦法有以下兩個(gè)缺點(diǎn):

1、需要遍歷頁(yè)面的所有js文件,有時(shí)可能效率會(huì)比較低。(我頁(yè)面的js文件沒(méi)幾個(gè),哈哈)

2、如果頁(yè)面中出現(xiàn)目錄不同的重名的js文件則可能判斷錯(cuò)誤。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 仁布县| 长丰县| 木里| 五家渠市| 醴陵市| 巴马| 长寿区| 原阳县| 祁阳县| 都安| 抚远县| 县级市| 新民市| 呼图壁县| 兖州市| 清远市| 延川县| 芮城县| 梧州市| 庆安县| 陇南市| 同心县| 沅陵县| 奎屯市| 丹棱县| 新密市| 中江县| 长岭县| 璧山县| 连南| 东兴市| 剑阁县| 兰州市| 鄄城县| 离岛区| 洮南市| 永川市| 扎囊县| 搜索| 成武县| 城口县|