• 让 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 }
  • 相关阅读:
    缓存ehcache启动失败missing element type
    使用Shell发布Spring Boot程序
    从游牧民族价值观看程序员问题
    浏览器端的缓存localStorage应用
    基于进程的Quartz.NET管理系统QuartzService(一)
    ASP.NET WebAPI 15 CORS
    ASP.NET WebAPI 14 仿写Filter管道
    ASP.NET WebAPI 13 Filter
    ASP.NET WebAPI 12 Action的执行
    ASP.NET WebAPI 11 参数验证
  • 原文地址:https://www.cnblogs.com/guozeng/p/3525753.html
Copyright © 2020-2023  润新知