HTML input
和textarea
元素的占位符属性非常棒,但它不能与IE8或IE9一起使用。所以,我正在寻找一种只在用户从IE8或IE9浏览时设置value属性的方法。
我尝试过这样的事情:
<textarea name="comment" placeholder="Message"><!--[if lte IE 9]>Message<![endif]-->
</textarea>
但是整个&#34; ...! - [如果是IE 9]&gt; ...&#34;无论浏览器如何,都在textarea中输出字符串。 (我不想在IE8 / 9中重新创建占位符效果,只需设置值。)
感谢阅读!
答案 0 :(得分:3)
每次要使用占位符时,不是编写额外的标记,而是在浏览器本身不支持属性/属性时执行特征检测测试并应用polyfill更好。对这些类型的特征进行测试并不困难:
"placeholder" in document.createElement("textarea");
如果此表达式的计算结果为true
,则无需执行其他工作 - 浏览器支持该属性。如果表达式的计算结果为false
,则表示您需要扩展原型以添加支持,或者加载一个为您执行此操作的polyfill。
在网上粗略搜索显示Placeholder.js,其中只需要一个脚本参考。
<textarea placeholder="That's it, done."></textarea>
<script src="assets/js/placeholders.min.js"></script>
从那里开始,您可以创建更精细的指令,了解应该支持哪些类型的场景,但这不是基本支持所必需的。
答案 1 :(得分:2)
请尝试使用此类型的组合:
<!--[if lte IE 9]><textarea name="comment">Message</textarea><![endif]-->
<!--[if !IE]> --><textarea name="comment" placeholder="Message"></textarea><!-- <![endif]-->
在任何一种情况下,只会出现其中一个。