如何在考虑向后兼容性的情况下使用HTML5占位符属性
how to use HTML5 placeholder attribute with backward-compatibility in mind?
我想使用HTML5的占位符属性(您可以在Thought Results的时事通讯中看到它(。但是,当我使用旧的浏览器时,它们当然不会呈现任何内容。我可以使用JavaScript来模仿它,但我不应该使用它,而且它是按照旧的方式完成的。如何既有HTML5占位符属性,又能为旧浏览器模拟它?
您可以检测浏览器是否支持属性:
http://diveintohtml5.info/detect.html#input-占位符
function supports_input_placeholder() {
var i = document.createElement('input');
return 'placeholder' in i;
}
如果是,什么也不做。如果没有,您可以使用JS获取占位符值,然后将其插入到您认为合适的字段中(可能是默认值(,然后添加适当的交互来模拟HTML5占位符行为。
@marcgg编写了一个很棒的JQuery占位符插件,它基本上为那些不支持它的浏览器复制了占位符功能。
https://github.com/marcgg/Simple-Placeholder
在选择这个插件之前,我搜索了很多占位符插件,到目前为止效果很好。最初发现它是为了回应这个类似的问题:
https://stackoverflow.com/questions/5120257/what-is-the-best-html5-placeholder-like-jquery-plugin-out-there
我建议使用Modernizr来检测此功能。
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,则可以使用Simple Placeholder,它的起源于StackOverflow。
相关文章:
- 如何检查html5视频是否有足够的缓冲,以便在不停止缓冲的情况下播放
- 在没有文件的情况下播放HTML5中javascript的音频-使用缓冲区
- 如何使HTML5在没有JS或Jquery的情况下工作
- 如何在没有 css3 和 webGL 的情况下将 3D 透视添加到 html5 画布
- 在这种特定情况下,如何在 HTML5 画布上重绘圆?(方法调用与直接使用上下文对象)
- 有没有办法在不使用表单的情况下计算数字并在HTML5中显示结果
- HTML5 多画布在 chrome 中运行良好,但在 Firefox 的情况下,它只能在第一个画布中工作
- 在没有闪烁的情况下重新绘制画布html5
- 了解HTML5视频何时可以在没有黑色背景的情况下播放的事件
- 在没有框架的情况下构建HTML5游戏
- 在没有循环的情况下测试一组元素之间的html5数据相等性
- 如何在不使用flash的情况下在HTML5中复制到剪贴板
- 如何在没有任何html5功能的情况下通过javascript播放mp3文件
- 独立的javascript应用程序,html5画布游戏..理想情况下使用V8或基于浏览器调整游戏
- 在使用webgl、html5画布的情况下,使用图像实现三维图形
- 如何检测HTML5视频是否可以在没有用户交互的情况下播放
- 默认情况下,HTML5 Canvas是否在屏幕外渲染
- 在没有
- 如何在不使用Jquery UI的情况下动态移动HTML5范围的输入句柄
- 在这种情况下,如何转到html5-history推送的上一个url