layui實際項目使用過程中遇到的兼容性問題及解決
layui項目使用過程中遇到的兼容性問題
layui實踐兼容
記錄自己在layui的實際使用過程中遇到的一些兼容性問題,爛筆頭>>>大腦
layui在vue項目中不能自動渲染的問題
下載layui源碼到本地,在vue的項目中引用,會出現layui的組件渲染失敗,只有手動調用render函數才能渲染成功的問題。
原因是,layui的自動渲染和vue的自動渲染有沖突,只需要將layui中的form.js和element.js的自動渲染關閉就可以了,我這里是直接將layui中的自動渲染給屏蔽掉了。


layui中獲取layui路徑方法不兼容IE11的問題
控制臺打印報錯:
Layui hint: css/modules/laydate/default/laydate.css?v=5.0.9 timeout
layui的彈出層組件、時間組件、穿梭組件等都不能正常使用。
原因是,layui中的獲取layui文件路徑的方法不兼容IE11。導致在IE11下,項目找不到該組件,所以組件當然就不能正常使用了。

解決方法

將上面紅框內的代碼用下面代碼替換:
//獲取layui所在目錄
,getPath = function(){
var jsPath = doc.currentScript ? doc.currentScript.src : function(){
var head = document.head || document.getElementsByTagName('head')[0];
var js = head.children
, last = js.length - 1
, src;
for (var i = last; i > 0; i--) {
if (js[i].readyState === 'interactive') {
src = js[i].src;
break;
}
}
return src || js[last].src;
}();
return jsPath.substring(0, jsPath.lastIndexOf('/') + 1);
}()
替換完成之后,就可以重新打包,新打好的包放到項目里面就可以了。
在IE8下使用layui遇到的坑
柵格系統不支持
<!--copy cdn上的js下來,改路徑,將下面代碼加入當前頁面body--> <!--[if lt IE 9]> ? <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> ? <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> <![endif]-->
上傳preview方法不支持
? ? var files = obj.pushFile();
//預讀本地文件,如果是多文件,則會遍歷。(不支持ie8/9)
?? ??? ??? ? ? ?/*
?? ??? ??? ? ? ?obj.preview(function(index, file, result){
?? ??? ??? ? ? ??? ?var fileName=file.name;
?? ??? ??? ? ? ??? ?
?? ??? ??? ? ? ?});
?? ??? ??? ? ? ?*/
<!--獲得filename方法修改-->
? ?
?? ??? ??? ? ? ?var inputFile = document.getElementsByName("uploadVideo");
?? ??? ??? ? ? ?var fileValue=inputFile[0].value;
?? ??? ??? ? ? ?var pos=fileValue.lastIndexOf("\\");
?? ??? ? ? ? ? ?var fileName=fileValue.substring(pos+1); 上傳彈出下載框
//服務端添加
response.setHeader("Content-Type", "text/html");總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

