在開發前端系統時候碰到這種兼容問題,以下是個人解決方案,希望能給其他人帶來幫助:
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(); });