jQuery EnPlaceholder plug (兼容IE浏览器的placeholder)使用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年9月8日 14:24:47 星期二
http://fanshuyao.iteye.com/
enplaceholder是一个比较好的placeholder插件,可以在不支持placeholder的浏览器中显示提示,如果浏览器本身支持,就不会使用本插件。
插件来源:http://www.ifrans.cn/jquery-enplaceholder-plug/
插件demo:http://www.ifrans.cn/demo/enplaceholder.html
插件有2仲模式,个人喜欢通过插入元素模拟这种
//通过value模拟placeholder
$(
'input'
).placeholder();
//通过插入元素模拟placeholder
$(
'input'
).placeholder({isUseSpan:
true
});
文本框内容改变时placeholder消失:
$('#username2,#password').placeholder({isUseSpan:true});
获得焦点时placeholder消失:
$('#address2').placeholder({isUseSpan:true,onInput:false});
但插件还有一个问题,就是input不使用placeholder时会返回undefined,但本人已经修改问题,增加了如下代码:
//修正无placeholder时,显示undefined问题 if(defaultValue != null && typeof(defaultValue) != "undefined")
该插件属于Jquery插件,依赖Jquery
插件见附件,或下面的源代码。
源代码:
/** * jQuery EnPlaceholder plug * EnPlaceholder是一个跨浏览器实现placeholder效果的jQuery插件 * version 1.0 * by Frans.Lee <dmon@foxmail.com> http://www.ifrans.cn * * 修正无placeholder显示undefined问题(lqy--http://fanshuyao.iteye.com/) * var defaultValue = $(_this).attr('placeholder'); * if(defaultValue != null && typeof(defaultValue) != "undefined"){ * * } */ ;(function ($) { $.fn.extend({ "placeholder":function (options) { options = $.extend({ placeholderColor:'#ACA899', isUseSpan:false, //是否使用插入span标签模拟placeholder的方式,默认false,默认使用value模拟 onInput:true //使用标签模拟(isUseSpan为true)时,是否绑定onInput事件取代focus/blur事件 }, options); $(this).each(function () { var _this = this; var supportPlaceholder = 'placeholder' in document.createElement('input'); if (!supportPlaceholder) { var defaultValue = $(_this).attr('placeholder'); //修正无placeholder时,显示undefined问题 if(defaultValue != null && typeof(defaultValue) != "undefined"){ var defaultColor = $(_this).css('color'); if (options.isUseSpan == false) { $(_this).focus(function () { var pattern = new RegExp("^" + defaultValue + "$|^$"); pattern.test($(_this).val()) && $(_this).val('').css('color', defaultColor); }).blur(function () { if ($(_this).val() == defaultValue) { $(_this).css('color', defaultColor); } else if ($(_this).val().length == 0) { $(_this).val(defaultValue).css('color', options.placeholderColor) } }).trigger('blur'); } else { var $imitate = $('<span class="wrap-placeholder" style="position:absolute; display:inline-block; overflow:hidden; color:'+options.placeholderColor+'; width:'+$(_this).outerWidth()+'px; height:'+$(_this).outerHeight()+'px;">' + defaultValue + '</span>'); $imitate.css({ 'margin-left':$(_this).css('margin-left'), 'margin-top':$(_this).css('margin-top'), 'font-size':$(_this).css('font-size'), 'font-family':$(_this).css('font-family'), 'font-weight':$(_this).css('font-weight'), 'padding-left':parseInt($(_this).css('padding-left')) + 2 + 'px', 'line-height':_this.nodeName.toLowerCase() == 'textarea' ? $(_this).css('line-weight') : $(_this).outerHeight() + 'px', 'padding-top':_this.nodeName.toLowerCase() == 'textarea' ? parseInt($(_this).css('padding-top')) + 2 : 0 }); $(_this).before($imitate.click(function () { $(_this).trigger('focus'); })); $(_this).val().length != 0 && $imitate.hide(); if (options.onInput) { //绑定oninput/onpropertychange事件 var inputChangeEvent = typeof(_this.oninput) == 'object' ? 'input' : 'propertychange'; $(_this).bind(inputChangeEvent, function () { $imitate[0].style.display = $(_this).val().length != 0 ? 'none' : 'inline-block'; }); } else { $(_this).focus(function () { $imitate.hide(); }).blur(function () { /^$/.test($(_this).val()) && $imitate.show(); }); } } } } }); return this; } }); })(jQuery);
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年9月8日 14:24:47 星期二
http://fanshuyao.iteye.com/
相关推荐
针对IE浏览器对`placeholder`属性的不兼容问题,开发者通常会采用JavaScript(JS)插件来实现兼容性处理。这些插件通过JavaScript代码模拟`placeholder`的效果,使得在IE浏览器上也能呈现类似的功能。文件名...
描述中提到的“完美兼容H5 placeholder属性在IE9及以下版本的问题”,意味着这个解决方案能够有效地在不支持`placeholder`属性的IE浏览器上模拟出相同的效果。"自测可用,修改点少"表示这个解决方案经过了实际测试,...
以下是一个简单的jQuery插件示例,用于在不支持`placeholder`属性的IE浏览器中实现类似的功能: ```javascript (function($){ // 检查浏览器是否支持placeholder属性 if (!('placeholder' in document....
IE8 placeholder 兼容使用插件。可兼容password类型,可以正常显示提示字。
总结起来,这个插件解决了H5`placeholder`属性在IE浏览器中的兼容性问题,通过代码封装和闭门技术实现了跨浏览器的支持。对于开发者来说,这是一个极好的学习资源,可以帮助他们提高在实际项目中处理浏览器兼容性...
本篇将详细介绍如何使用一个名为"placeholderfriend.js"的jQuery插件,在IE浏览器下实现`placeholder`效果。 首先,我们来看`placeholderfriend.js`插件的基本原理。这个插件的工作机制是通过监听页面加载和输入框...
本篇文章将深入探讨如何在IE浏览器中实现`placeholder`属性的兼容性,以便让所有用户都能享受到这一便捷功能。 首先,我们需要了解`placeholder`属性的基本用法。在HTML中,我们通常这样使用它: ```html ...
HTML5.js是一个专门为老旧的IE浏览器提供HTML5新特性兼容性的JavaScript库。由于Internet Explorer(尤其是版本8及以下)在支持HTML5标准方面存在显著不足,开发者常常需要借助这类库来确保网站在不同浏览器间的一致...
标题中提到的知识点是"基于jQuery实现IE浏览器兼容placeholder效果"。jQuery是一个快速、小巧、功能丰富的JavaScript库,它通过简化HTML文档遍历、事件处理、动画和Ajax交互等操作,使得Web开发变得更加容易。而IE...
IE8兼容性和判断IE浏览器版本 IE8兼容性是前端开发中经常遇到的问题,特别是在使用老版本的IE浏览器时。下面是IE8兼容性中的一些常见问题和解决方法: 首先,IE8只支持jquery2.0以下的版本,因此在使用jquery时...
复制代码代码如下: //placeholder功能实现 var placeholder = { add: function (el) { if (!(‘placeholder’ in document.createElement(‘input’))) { var self = placeholder; el.each(functio
然而,浏览器的兼容性问题一直是开发者面临的一大挑战,特别是对于较老版本的IE浏览器。`placeholder`属性是HTML5引入的新特性,它允许我们在`<input>`元素内设置提示文本,但遗憾的是,这个特性在IE8及以下版本并不...
这篇博客文章(https://alxw4616.iteye.com/blog/2098609)很可能介绍了如何利用JavaScript或者jQuery来为不支持`placeholder`属性的IE浏览器添加兼容性。通常,这种插件会监听输入框的事件,如`focus`和`blur`,并...
总的来说,这个jQuery插件是一个解决浏览器兼容性问题的实用工具,使得在老版本的IE浏览器上也能实现HTML5的placeholder效果,从而提高用户体验。通过学习和使用这个插件,开发者可以更好地理解和掌握如何利用jQuery...
- CSS3 PIE:这是一个流行的JavaScript库,通过VML(Vector Markup Language)技术为旧版IE浏览器提供对CSS3边框半径、圆角、阴影等特性的支持。 - Modernizr:这是一个JavaScript库,用于检测浏览器对HTML5和CSS3...
总结来说,`jquery.placeholder.js`是一个小巧而实用的jQuery插件,它解决了IE浏览器对`placeholder`属性的兼容性问题,使得无论在哪个浏览器环境下,用户都能享受到一致的用户体验。通过简单的引入和调用,以及可选...
则可以在谷歌浏览器等高级浏览器的输入框中实现替换文本的功能,也就是得到如下图所示的对话框: 但是这个属性在WIN7默认的浏览器IE8中无法兼容,更不要说IE6了。也就是说IE里面不支持placeholder这个标签。 不信的...