让所有浏览器都支持HTML5 placeholder属性
2012-12-07 11:10
471 查看
HTML5的placeholder属性
placeholder 属性是 HTML5 中的新属性,俗名叫“占位符”,功能类似于输入框在得到焦点时,时面的默认值会变成空白,当失去焦点时又会显示默认的文本,我想大家一定使用js/jquery制作过这样的效果。目前只有在Mozilla Firefox 3.7+、Apple Safari 4+、Google Chrome 4+、Opera11+等现代浏览器支持。
该特性仅被现代浏览器支持,在旧版 IE 下我们可以使用 javascript 来模拟实现。
为了让代码可以重用,而不必为页面中每个 <input> 都写上相应的处理逻辑,有人专门写了一个 jQuery 下的插件。于是我们只需在页面引用一段 js ,就可以像 HTML5 的标准写法一样,在 input 中添加属性 placeholder 来实现这个效果了,简洁高效。同时,在 HTML5 时代真正来临时(也就是所有主流浏览器都开始支持 HTML5 的时候),直接移除这个插件的 js 引用即可,无需做任何重构。
插件主页:
http://webcloud.se/code/jQuery-Placeholder/
placeholder 属性是 HTML5 中的新属性,俗名叫“占位符”,功能类似于输入框在得到焦点时,时面的默认值会变成空白,当失去焦点时又会显示默认的文本,我想大家一定使用js/jquery制作过这样的效果。目前只有在Mozilla Firefox 3.7+、Apple Safari 4+、Google Chrome 4+、Opera11+等现代浏览器支持。
检测浏览器是否支持placeholder属性
$.support.placeholder = false; if ("placeholder" in document.createElement("input")) $.support.placeholder = true;
该特性仅被现代浏览器支持,在旧版 IE 下我们可以使用 javascript 来模拟实现。
Placeholder 的 js 实现
var doc = document, inputs = doc.getElementsByTagName('input'), // 检测 placeholder 支持 supportPlaceholder = 'placeholder' in doc.createElement('input'), /* * 创建 placeholder * @param {ELEMENT} input 传入的 input 对象 * @return {VOID} * @author: sofish Lin http://sofish.de */ placeholder = function (input) { var text = input.getAttribute('placeholder'), defaultValue = input.defaultValue; // 制作一个假 placeholder // 需要 css 配合,在 JS 中设置 style 并不太好 input.value = text; // 聚焦去掉假 placeholder input.onfocus = function () { if (input.value === defaultValue || input.value === text) { this.value = ''; } } // 当失焦值为空时,补回 placeholder 的值 input.onblur = function () { if (input.value === '') { this.value = text; } } }; if (!supportPlaceholder) { for (var i = 0, len = inputs.length; i < len; i++) { var input = inputs[i], text = input.getAttribute('placeholder'); // 当 input[type=text] 并且 placeholder 值不为空是执行 if (input.type === 'text' && text) { placeholder(input); } } }
Placeholder 的 jQuery 插件
为了让代码可以重用,而不必为页面中每个 <input> 都写上相应的处理逻辑,有人专门写了一个 jQuery 下的插件。于是我们只需在页面引用一段 js ,就可以像 HTML5 的标准写法一样,在 input 中添加属性 placeholder 来实现这个效果了,简洁高效。同时,在 HTML5 时代真正来临时(也就是所有主流浏览器都开始支持 HTML5 的时候),直接移除这个插件的 js 引用即可,无需做任何重构。插件主页:
http://webcloud.se/code/jQuery-Placeholder/
相关文章推荐
- html5 placeholder 属性 并检测浏览器是否支持这个属性
- HTML5属性placeholder,支持IE6、7、8浏览器
- 基于jQuery的让非HTML5浏览器支持placeholder属性的代码
- 让所有浏览器支持HTML5 video视频标签
- 让低版本浏览器支持input的placeholder属性(js方法)
- 为不支持HTML5 placeholder特性的浏览器添加placeholder特性
- 自定义插件-让IE9以下的浏览器支持H5属性placeholder
- 让低版本浏览器支持input的placeholder属性
- ie8浏览器不支持placeholder属性
- ie8下面版本号(包含ie8)的浏览器不支持html5标签属性解决方式(Modernizr 2.6.2插件的使用)
- 在IE8等不支持placeholder属性的浏览器中模拟placeholder效果
- 兼容其他不支持placeholder的浏览器(超强的让IE下支持placeholder的属性插件)
- IE不支持HTML5表单属性placeholder的解决办法
- 让IE下支持Html5的placeholder属性的插件
- 解决IE不支持HTML5表单属性placeholder的问题
- 关于HTML5属性placeHolder在手机浏览器不兼容问题
- HTML5支持所有浏览器的SHIV解决方案
- 几乎所有浏览器均 支持tabindex 属性,除了 Safari
- 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)