取回「;占位符;IE中不带JQuery的Javascript值

取回「;占位符;IE中不带JQuery的Javascript值,javascript,internet-explorer,Javascript,Internet Explorer,我有一些Javascript代码来检查浏览器是否支持占位符,如果不支持占位符,它会自己创建占位符。现在,这可以在一些旧浏览器上使用,但不是所有浏览器,尤其是IE 我所需要做的就是得到“占位符”值,此时IE9中的占位符是“未定义的” 这是我的密码: //Test if Placeholders are supported var test = document.createElement("input"); if ("placeholder" in test) { var testholder

我有一些Javascript代码来检查浏览器是否支持占位符,如果不支持占位符,它会自己创建占位符。现在,这可以在一些旧浏览器上使用,但不是所有浏览器,尤其是IE

我所需要做的就是得到“占位符”值,此时IE9中的占位符是“未定义的”

这是我的密码:

//Test if Placeholders are supported
var test = document.createElement("input");
if ("placeholder" in test) {
  var testholder = true;
  }
else {
  var testholder = false;
  }

//Fix unsupported placeholders
function placeHolder(id)
{
var demo = document.getElementById(id);

    demo.className = "fix-hint";
    demo.value = demo.placeholder;

    demo.onfocus = function()
    {
        if (this.className == "fix-hint")
        { 
        this.value = ""; this.className = "fix-nohint"; 
        }
    };

    demo.onblur = function()
    {
        if (this.value === "")
        { 
        this.className = "fix-hint"; this.value = demo.placeholder; 
        }
    };
    return false;
} 我使用的是0%Jquery,我觉得它太笨重了,无法解决小问题,而且我想学习纯Javascript。“现代化”也是一个禁忌,尽管我可能会在某个时候使用它

更新

这是工作代码。在IE8和IE9中测试。(函数调用位于“placeSupport”的if/else中。)

}

如果您不确定是否能够使用某些功能/属性,请尝试-您会注意到占位符在IE9中不可用

试用

getAttribute()返回 指定的元素。如果命名属性不存在,则该值 返回的值将为null或“”(空字符串);有关详细信息,请参见注释 细节

HTML

<input id="demo" placeholder="Rawr" />

随着项目的发展,你会意识到jQuery为你节省了多少时间(如果你正在使用它的话),而不是其他方式。。它要轻得多。并且不要编写类似于
if(“占位符”在测试中){var-testholder=true;}或者{var-testholder=false;}
的代码,您会发现
var-testholder=(“占位符”在测试中)
也做了同样的事情。@Chase但在IE8密码类型输入中,占位符仅显示为点。。在这种情况下该怎么办。@RIADev-这是一个棘手的问题,因此您将不得不为这些做一些自定义的事情。您可以在SO上找到类似的问题,例如:。然而,IE8终于开始被淘汰,因此,在您的案例中,这是否是一个值得解决的问题,可能值得一问。它会影响多少用户?值得做出改变吗?等等,等等…@Chase,但如果客户说他们是超级用户……无论如何……我已经找到了解决方案,谢谢
<input id="demo" placeholder="Rawr" />
var placeholder = document.getElementById("demo").getAttribute("placeholder");
console.log(placeholder);