zoukankan      html  css  js  c++  java
  • 让 IE 支持HTML5 placeholder

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

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

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

      

     1 function setIEplaceHolder () {
     2     if ("placeholder" in document.createElement("input")) {
     3             return;
     4         }
     5         function placeHolder (elem) {
     6 
     7             var left = elem.offsetLeft, top = elem.offsetTop,
     8                 paddingLeft = parseInt(elem.currentStyle.paddingLeft),
     9                 paddingTop = parseInt(elem.currentStyle.paddingTop),
    10                 placeValue = elem.getAttribute("placeholder"),
    11                 span = document.createElement("span");
    12             
    13             span.innerHTML = placeValue;
    14             span.style.position = "absolute";
    15             span.style.left = left + paddingLeft + 2 + "px";
    16             span.style.top = top + paddingTop + 2 + "px";
    17             span.style.color = "#999";
    18             
    19             elem.parentNode.appendChild(span);
    20 
    21             span.onclick = function () {
    22                 elem.focus();
    23             }
    24 
    25             elem.attachEvent('onpropertychange', function () {
    26                 if (elem.value.length > 0) {
    27                     span.style.visibility = "hidden";
    28                 } else {
    29                     span.style.visibility = "visible";
    30                 }
    31             });
    32         }
    33         //input
    34         var inputs = document.getElementsByTagName("input"),
    35             len = inputs.length;
    36         for (var i=0; i<len; i++) {
    37             if (inputs[i].getAttribute("placeholder")) {
    38                 placeHolder(inputs[i]);
    39             }            
    40         }
    41         //textarea
    42         var textareas = document.getElementsByTagName("textarea"),
    43             len = textareas.length;
    44         for (var i=0; i<len; i++) {
    45             if (textareas[i].getAttribute("placeholder")) {
    46                 placeHolder(textareas[i]);
    47             }            
    48         }
    49 }
  • 相关阅读:
    Linux-nmap
    MongoDb注意事项
    HTML如何转XTML
    Centos 64位 Install certificate on apache 即走https协议
    CentOS 下搭建部署独立SVN服务器全程详解(5.5)
    LNMP安装与配置
    64位CentOS 6.0下搭建LAMP环境
    Apache遇到的问题:APR not found
    超详细LAMP环境搭建
    偏方治百病
  • 原文地址:https://www.cnblogs.com/guozeng/p/3525753.html
Copyright © 2011-2022 走看看