个比较严重的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");
}
用这种方法在火狐下和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、火狐浏览器的,其他的浏览器没有测试~如果有人发现在其他的浏览器上还有问题,也请能告诉我
于是今天早上针对这个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");
}
用这种方法在火狐下和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、火狐浏览器的,其他的浏览器没有测试~如果有人发现在其他的浏览器上还有问题,也请能告诉我