HTML5/jQuery - 在旧浏览器上隐藏内容?

Posted

技术标签:

【中文标题】HTML5/jQuery - 在旧浏览器上隐藏内容?【英文标题】:HTML5/jQuery - Hide content on old browsers? 【发布时间】:2013-12-30 11:48:27 【问题描述】:

我的问题实际上是相反的,但你明白了。

我在“输入”字段上方有一个带有占位符和标签的表单。 它看起来有点愚蠢,但由于旧浏览器不支持 html5,其中添加了“占位符”属性,因此需要标签。

我在想,如果有办法检查浏览器是否支持 HTML5? 如果是,请隐藏标签。如果没有,请隐藏占位符(你不需要,因为浏览器无论如何都不会检测到占位符)。

<div class="6u">
Email
<input type="email" class="text" name="email" placeholder="Email" />
</div>

我猜想使用 jQuery 是可能的,但我对它真的很陌生。 这可能吗?

【问题讨论】:

***.com/questions/15020826/… 您可以使用Modernizr 来检测浏览器是否支持HTML5,并相应地使用jquery 来隐藏/显示标签 【参考方案1】:

你可以试试特征检测

<div class="6u">
    <label>Email</label>
    <input type="email" class="text" name="email" placeholder="Email" />
</div>

然后

.placeholder label
    display: none;

(function () 
    if ('placeholder' in document.createElement('input')) 
        var html = document.getElementsByTagName("html")[0];
        html.className = (html.className || '') + ' placeholder'
    
)();

演示:Fiddle

【讨论】:

【参考方案2】:

如果你想在输入文本中添加 id 属性

<div class="6u">
Email
<input id="email" type="email" class="text" name="email" placeholder="Email" />
</div>

并使用 removeAttr() 函数

$("#email").removeAttr("placeholder");

【讨论】:

【参考方案3】:

我会进行值检查,此处描述为diveintohtml5。然后,如果浏览器支持 HTML5,则在 body 标签中添加一个类来隐藏所有标签。让浏览器完成工作,而不是您的 javascript

【讨论】:

【参考方案4】:

您可以检查浏览器是否支持任何 HTML5 功能,例如画布或本地存储,如下所示:- 请参阅 http://diveintohtml5.info/detect.html

function supports_local_storage() 
  try 
    return 'localStorage' in window && window['localStorage'] !== null;
   catch(e)
    return false;
  

【讨论】:

以上是关于HTML5/jQuery - 在旧浏览器上隐藏内容?的主要内容,如果未能解决你的问题,请参考以下文章

在 mouseup 文本选择 + HTML5/jQuery 上覆盖突出显示的文本

8款HTML5/jQuery应用助网站走向高上大

HTML5,jQuery,ajax基础面试

PHP中的dom在旧文件上保存新内容

使用防止javascript错误控制台.log在旧浏览器上

如何在旧版 IOS/旧版浏览器上使用 Graphql Vue Apollo?