Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在考虑向后兼容性的情况下使用HTML5占位符属性?_Javascript_Html_Browser_Backwards Compatibility - Fatal编程技术网

Javascript 如何在考虑向后兼容性的情况下使用HTML5占位符属性?

Javascript 如何在考虑向后兼容性的情况下使用HTML5占位符属性?,javascript,html,browser,backwards-compatibility,Javascript,Html,Browser,Backwards Compatibility,我想使用HTML5的占位符属性(你可以在时事通讯中看到)。当然,当我使用旧浏览器时,它们不会呈现任何内容。我可以使用JavaScript来模仿它,但是,我不应该使用它,它是用老方法完成的。我如何既拥有HTML5占位符属性,又同时为旧浏览器模拟该属性?您可以检测浏览器是否支持该属性: 如果有,什么也不做。如果没有,您可以使用JS获取占位符值,然后根据需要将其插入字段(可能是默认值),然后添加适当的交互来模拟HTML5占位符行为 @margg编写了一个很棒的JQuery占位符插件,它基本上复制了那

我想使用HTML5的占位符属性(你可以在时事通讯中看到)。当然,当我使用旧浏览器时,它们不会呈现任何内容。我可以使用JavaScript来模仿它,但是,我不应该使用它,它是用老方法完成的。我如何既拥有HTML5占位符属性,又同时为旧浏览器模拟该属性?

您可以检测浏览器是否支持该属性:


如果有,什么也不做。如果没有,您可以使用JS获取占位符值,然后根据需要将其插入字段(可能是默认值),然后添加适当的交互来模拟HTML5占位符行为

@margg编写了一个很棒的JQuery占位符插件,它基本上复制了那些不支持占位符的浏览器的占位符功能

我搜索了很多占位符插件,然后决定使用这个插件,到目前为止效果很好。最初是在回答类似问题时发现的:

我建议使用来检测此功能

if (Modernizr.input.placeholder) {
  // your placeholder text should already be visible!
} else {
  // no placeholder support :(
  // fall back to a scripted solution
}
如果您对使用这个库不感兴趣,可以使用下面的代码

function supports_input_placeholder() {
    var i = document.createElement('input');
    return 'placeholder' in i;
}

关于回退支持,如果您使用的是jQuery,那么您可以使用它,它起源于。

这很有效。我只是不理解I中的
返回'placeholder'零件。它在技术上做什么?这是什么意思?
中的
操作符测试对象(在本例中是
HTMLInputElement
对象)是否具有给定的属性。由于实现
占位符
属性的浏览器也将
占位符
属性添加到
HTMLInputElement
界面,这是对
占位符
的有效支持测试@Diogo您的编辑是一个全新的答案。请创建一个新答案,而不是编辑此答案。@Diogo crap。我想不是。奇怪的是,系统并没有保存这些数据。
function supports_input_placeholder() {
    var i = document.createElement('input');
    return 'placeholder' in i;
}