私は最近、エージェントが JavaScript を無効にしている場合にメッセージを表示するための優雅でシンプルな方法を発見しました。
モバイルサファリで試してみましたが、うまくいきません。そうしない理由はありますか?コードを書くときは、次のことを考慮しました。
- マークアップ/DOMは実際にロード/登録しているので、divの終了タグの後にscriptタグを付けます
- すぐに機能しない理由は何でもいいので、 setTimeout 関数を使用して 100 ミリ秒待機させました。
- 古き良きdomルックアップとスタイル変更がうまく/正しく実行されなかった場合に備えて、jqueryを使用しました
私のコード:
<div id="enable-js">
<div id="content-container">
<div id="text_wrapper">
<p>For the best experience, please <a href="http://www.activatejavascript.org/">enable
javascript</a>.
If your browser is not capable of using javascript,
please considering getting a <a href="http://alternativebrowseralliance.com/browsers.html">better
browser</a>.
</p>
</div>
</div>
</div>
<script type="text/javascript">
(function() {
setTimeout(function() {
$('#enable-js').hide(); //hide area if scripts enabled
}, 100);
})();
</script>
よろしくお願いします。
編集:
問題が Webkit にないことを確認しました。また、div の終了タグの後にではなく、自己呼び出しの匿名関数で開始したり、window.onload に非表示のコードを配置したりしても、違いはありません。
EDIT2:
document.getElementById を実行し、display を none に設定しても機能しないことを確認しました! 何が起こっている...