在开发前端系统时候碰到这种兼容问题,以下是个人解决方案,希望能给其他人带来帮助:
var JPlaceHolder = {
//检测
_check: function () {
return 'placeholder' in document.createElement('input');
},
//初始化
init: function () {
if (!this._check()) {
this.fix();
}
},
//修复
fix: function () {
jQuery(':input[placeholder]').each(function (index, element) {
var self = $(this), txt = self.attr('placeholder'), atrValue = self.attr('type');
//密码文本框
if (atrValue == "password") {
self.attr("type", "text");
self.attr("pwd", "true");
} else {
self.attr("pwd", "false");
}
self.focusin(function (e) {
var atrpwd = self.attr('pwd');
if (atrpwd == "true") {
self.attr("type", "password");
} else {
self.attr("type", "text");
}
self.val("");
}).focusout(function (e) {
if (!self.val()) {
self.attr("type", "text");
self.val(txt);
}
});
if (self.val().length > 0) {
self.val("");
}
else {
self.val(txt);
}
});
}
};
//执行
jQuery(function () {
JPlaceHolder.init();
});