在开发前端系统时候碰到这种兼容问题,以下是个人解决方案,希望能给其他人带来帮助:
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(); });