HTML5 新增的placeholder属性已经得到现代浏览器的支持,旨在提供简单的API可以为文本输入框设置 描述输入字段预期值的提示信息(hint)。

这是W3C在标准化的过程中对用户体验的更多考虑。但是这一属性在IE却没有得到很好的支持,至少到IE9没有被支持,那么,我们在使用placeholder的时候可以为IE写一个扩展的JS脚本,让IE也支持placeholder。

我们只需在页面loaded后运行一个函数,就能让IE支持placeholder。

 function setIEplaceHolder () {
if ("placeholder" in document.createElement("input")) {
return;
}
function placeHolder (elem) { var left = elem.offsetLeft, top = elem.offsetTop,
paddingLeft = parseInt(elem.currentStyle.paddingLeft),
paddingTop = parseInt(elem.currentStyle.paddingTop),
placeValue = elem.getAttribute("placeholder"),
span = document.createElement("span"); span.innerHTML = placeValue;
span.style.position = "absolute";
span.style.left = left + paddingLeft + 2 + "px";
span.style.top = top + paddingTop + 2 + "px";
span.style.color = "#999"; elem.parentNode.appendChild(span); span.onclick = function () {
elem.focus();
} elem.attachEvent('onpropertychange', function () {
if (elem.value.length > 0) {
span.style.visibility = "hidden";
} else {
span.style.visibility = "visible";
}
});
}
//input
var inputs = document.getElementsByTagName("input"),
len = inputs.length;
for (var i=0; i<len; i++) {
if (inputs[i].getAttribute("placeholder")) {
placeHolder(inputs[i]);
}
}
//textarea
var textareas = document.getElementsByTagName("textarea"),
len = textareas.length;
for (var i=0; i<len; i++) {
if (textareas[i].getAttribute("placeholder")) {
placeHolder(textareas[i]);
}
}
}

让 IE 支持HTML5 placeholder的更多相关文章

  1. IE8 不支持html5 placeholder的解决方案

    IE8不支持html5 placeholder的解决方法. /** * jQuery EnPlaceholder plug * version 1.0 2014.07.01戈志刚 * by Frans ...

  2. html5 placeholder ie 不兼容问题 解决方案

    解决HTML5 placeholder的方案 来源:   时间:2013-09-05 20:06:49   阅读数:11375 分享到: 0 [导读] 使低版本浏览器支持Placeholder有很多方 ...

  3. 支持HTML5 SqlLite的AndroidApp

    简介: 想要建立一个支持HTML5的Android App; 这个HTML5的程序需要使用本地存储,特别是sqllite; 用eclipse创建了一个app,这个app默认在res/layout建了两 ...

  4. (转)html5 Placeholder属性兼容IE6、7方法

    使低版本浏览器支持Placeholder有很多方法,都不是很完美,或多或少有点问题,且有些原生支持的浏览器在获得焦点时会清空Placeholder提示.发现zhihu的解决方法不错,特记录下 wind ...

  5. HTML5 Placeholder实现input背景文字提示效果

    这篇文章我们来看看什么是input输入框背景文字提示效果,如下图所示: 这种效果现在网上非常的普遍流行,但大部分是使用JavaScript实现的.但HTML5给我们提供了新的纯HTML的实现方式,不需 ...

  6. HTML5 placeholder(空白提示) 属性

    原文地址:HTML5′s placeholder Attribute 演示地址: placeholder演示 原文日期: 2010年08月09日 翻译日期: 2013年8月6日 浏览器引入了许多的HT ...

  7. 现在有哪些浏览器的哪些版本支持 HTML5

    现在有哪些浏览器的哪些版本支持 HTML5 1.IE IE9支持部分 IE10+支持2.Firefox Firefox3.5,3.6支持大部分 Firefox4.0+支持3.Chrome Chrome ...

  8. [C#]如何让webbrowser控件支持Html5

    最近因为项目的需要,需要研究在C#winform窗体中加载网页,和弹出提醒,但我们的网站是HTML5的,ie浏览器内核不支持,而且因为根据客户机系统的不一致,加载的ie内核可能是不同,显示的效果也会不 ...

  9. 让IE系列支持HTML5的html5shiv.js和respond.min.js

    HTML5越来越成为主流,被广大搜索引擎所使用,但IE对HTML5的支持却常被人唾弃. 解决方案有两种: 1.为网站创建多套模板,通过程序对User-Agent的判断给不同的浏览器用户显示不同的页面, ...

随机推荐

  1. Html表格自动换行

    前述: 前端经常用到表格,而表格中的列里面的内容一多,会撑大列的宽度,这个时候如果想要内容不撑大列宽...请看下面的link: link:html表格自动换行

  2. 前端工程之模块化(来自百度FEX)

    模块化 是一种处理复杂系统分解成为更好的可管理模块的方式,它可以把系统代码划分为一系列职责单一,高度解耦且可替换的模块,系统中某一部分的变化将如何影响其它部分就会变得显而易见,系统的可维护性更加简单易 ...

  3. java正则表达式一:基本使用

    java正则表达式主要涉及三个类:java.util.regex.Matcher.java.util.regex.Pattern.java.util.regex.PatternSyntaxExcept ...

  4. 【Algorithm】逆序数的分治求解

    逆序数的分治求解,时间复杂度O(nlgn).基本思想是在归并排序的基础上加逆序计数. #include <iostream> #include <cstdio> #includ ...

  5. 【转】HashSet的用法

    原文网址:http://blog.csdn.net/aidesudi/article/details/4720201 Java代码 public class TestHashSet { public  ...

  6. Stm32 定时器 定时时间设置及PWM频率 占空比的设置总结

    一.定时器的时钟: 当SYSCLK等于72M,APB1等于36M APB2等于72M时,定时器的时钟为72M.注意图中这句话:如果APB1/APB2预分频器=1则频率不变,否则频率x2.如果此时,AP ...

  7. 关于unsigned int和int的加法

    补码(two's complement) 在计算机系统中,数值一律用补码来表示和存储.原因在于,使用补码,可以将符号位和数值域统一处理:同时,加法和减法也可以统一处理.此外,补码与原码相互转换,其运算 ...

  8. 线段树解Insertion Sort Advanced Analysis

    题目出处 题意描述: 这个题目提问的是,在插入排序的序列给定的情况下,求最少需要移动的次数. 序列的长度n <=10^5 序列中的元素a[i] <=10^6 一组数据中case数t < ...

  9. <a>标签的href属性

    <a> 标签的 href 属性用于指定超链接目标的 URL. 语法 <a href="value"> 属性值 值 描述 URL 超链接的 URL.可能的值: ...

  10. @Resource 和 @Autowired注解的异同

    @Resource 和 @Autowired注解的异同 @Autowired 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false 例 ...