個比較嚴重的bug:在IE6、IE7下,驗證提示的樣式檔案載入不進來。
於是今天早上針對這個bug,測試了好多次,仍然不行,最後才發現原來是因為用jquery的方法動態載入css教程樣式檔案,存在相容問題。
在jquery.skygqCheckAjaxform.1.3.js檔案中原來動態載入css檔案的代碼是這樣的:
//載入css樣式
if ($("link[href$=valid.css]").length == 0){
$('
<LINK href="'+settings.root+'css/valid.css" type=text/css rel=stylesheet>').appendTo("head");
}
用這種方法在Firefox下和IE8下是不存在問題的~但是在IE6和IE7下,樣式檔案不起作用,於是作了如下的修改:
//載入css樣式
if ($("link[href$=valid.css]").length == 0){
var css_href = settings.root+'css/valid.css';
var styleTag = document.createElement("link");
styleTag.setAttribute('type', 'text/css');
styleTag.setAttribute('rel', 'stylesheet');
styleTag.setAttribute('href', css_href);
$("head")[0].appendChild(styleTag);
}
上面的代碼,是用原生的網頁特效方法建立了 元素,最後也是用原生的javascript的appendChild的方法將這個動態建立的link元素添加到了head元素中。
經過測試,上面的代碼具備相容IE6、IE7、IE8、Firefox瀏覽器的,其他的瀏覽器沒有測試~如果有人發現在其他的瀏覽器上還有問題,也請能告訴我