ブラウザのJavaScriptがオフになっているかどうかを確認してから、本文の代わりにエラーdivを表示する必要があります。どうすればよいですか?
2350 次
4 に答える
7
逆に行う必要があります-いわば-すべてを出力してから、Javascriptを使用してエラーdivを非表示/削除する必要があります。
これはプログレッシブエンハンスメントと呼ばれます。
于 2011-02-28T09:52:33.300 に答える
6
<html class="no-js">
<head>
<style>
.error,
.no-js #container {
display: none;
}
.no-js .error {
display: block;
}
</style>
<script>
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, '');
</script>
</head>
<body>
<div id="container">
rest of page
</div>
<div class="error">
sorry, no javascripty, no sitey!
</div>
</body>
</html>
もちろん、これは通常悪い考えですが、あなたがすでにそれを考慮していることを願っています。
于 2011-02-28T09:53:18.900 に答える
4
本体に追加できます:
<noscript>
Here the html to display when javascript is off
</noscript>
于 2011-02-28T09:53:12.613 に答える
1
@roryf の解決策は良いアプローチですが、jQuery に依存しています。domloaded イベントの発生が少し遅れると、no-js コンテンツの「フラッシュ」を取得できます。
html.no-js
以下は、ボディがレンダリングされる前にクラスを削除します。
<!DOCTYPE html>
<html class="no-js">
<head>
<script>
if (document.documentElement) {
var cn = document.documentElement.className;
document.documentElement.className = cn.replace(/no-js/,'');
}
</script>
</head>
于 2011-02-28T10:18:35.910 に答える