为什么我应该使用<noscript>
Why should I use <noscript>?
在这里幽默一下。
为什么要在页面中使用<noscript>
另一种选择(至少是我使用的)是Modernizr+no js class组合,它与(例如)HTML5 Boilerplate一起使用,到目前为止,这在所有用例中都足够了。
我能想到使用<noscript>
的唯一原因是在JS未启用时有条件地加载资源文件(很可能是CSS覆盖?)。我不确定是否有一种方法可以在不使用<noscript>
的情况下实现JS免费,但即使是这种用例似乎也可以绕过它。
下面有很多显而易见的答案
是的,当Javascript不可用时,<noscript>
用于有条件地向客户端显示/隐藏HTML元素。我知道。你知道的。每个使用HTML的人都应该知道这一点。
然而,还有很多其他方法可以做同样的事情,其中大多数都比<noscript>
更可取。一个是Modernizr切换的html.no-js
类,我在上面提到过。
因此,这个问题背后的想法更多的是,<noscript>
能为web开发人员做些什么吗?也就是说,这已经足够重要了,但没有其他方法可以做到这一点吗?
@下面的古法用广告表达了一个很好的观点。
你为什么要这样做?如果你对它没有用,那就不要用它。
noscript
标签通常用于广告和访问者跟踪中的回退。如果用户禁用了Javascript,则加载一个普通图像,而不是运行脚本。
当用户的浏览器不支持javascript或禁用javascript时。中将显示的元素。
如果我没有记错的话,为证明其包含在HTML5中(而不是被归类为过时)而确定的一个关键用例是,它可以与<meta http-equiv="refresh" ...
一起使用,这样,如果JS不可用,用户就会自动重定向到非JS版本的网站。
如果您有一个包含关键JS的页面,请使用noscript
让用户知道他们的JS已禁用,他们需要启用它才能查看页面。
标记用于浏览器的JavaScript被禁用的情况。只有当您的浏览器JavaScript未启用时,才会显示里面的内容。
您可以将其用于警告消息,例如:"嘿,您的JavaScript被禁用了。"。"
我能想到的noscript的最佳用例是当您试图使用javascript延迟加载资产以提高页面性能时。考虑一个简单的图像延迟加载程序:
<style>
.no-js .lazy-load { display:none }
</style>
<img data-src="/path/to/img.jpg" src="/placeholder.png" class="lazy-load">
<noscript>
<img src="/path/to/img.jpg">
</noscript>
<script>(function ($) {
// http://stackoverflow.com/a/488073/1459873
function isScrolledIntoView(elem) {
var $elem = $(elem);
var $window = $(window);
var docViewTop = $window.scrollTop();
var docViewBottom = docViewTop + $window.height();
var elemTop = $elem.offset().top;
var elemBottom = elemTop + $elem.height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
function lazyLoad() {
$('img.lazy-load').filter(function () {
return isScrolledIntoView(this);
}).each(function () {
var $this = $(this);
$this.attr('src', $this.data('src'))
.removeClass('lazy-load')
.addClass('lazy-loaded');
});
}
$.ready(lazyLoad);
$(window).on('load scroll resize', lazyLoad);
}(jQuery))</script>
如果您试图用css类隐藏延迟加载的图像,则无js回退仍将加载该图像。
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- Ajax文件加载和<输入>文件加载
- 为什么要使用0>javascript中的0
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 链接所有<a>Meteor
- 在<输入类型=“;文件“/>
- Div根据<选择>菜单
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 如何首先设置样式<td>表中包含在窗体中的元素
- 通过点击<李>在jQuery中
- 正在检测导航到<a name=“;最新主题”></a>
- 将所选类别循环到ul>李用加载更多按钮
- react router router.HistoryLocation以<noscript>但没有完美的工作
- <noscript>标记单个元素或类似的东西
- 禁用JavaScript,<noscript>标签,我们可以做验证
- 为什么我应该使用<noscript>
- 从禁用JavaScript中恢复-被困在Alt+lt;noscript>页
- <noscript>或者其他什么