ページが完全に読み込まれる前にDOMを操作できるJavaScriptフレームワークが多数あります。ユーザーのエージェントにJavaScriptがサポートされているかどうかを判断するためにhtmlタグやbodyタグが操作されることがよくあります。ondomready JavaScriptサポートを有効にする代替ソリューション
たとえば、htmlタグのクラスは「no-js」になり、DOMの準備ができたらそのクラス名は「js」に更新され、フロントエンドの開発者はJavaScriptがサポートされている場合と、JavaScriptがサポートされていない場合にデータを正しく表示する方法の2つの方法があります。
これはうまくいきますが、常に少しの遅れがあり、更新されたクラス命名関数が実行されたときに( 'no-js'から 'js'に)画面ジャンプが頻繁に見られます。 JSでサポートされているバージョンのサイトに異なるスタイリングが適用されています。
これはいつも私を悩ませています。ページ上に多くのJavaScriptベースのインタラクティブ機能があると、実際には醜いように見えます。
短いストーリーで、私の意図は、これをondomreadyイベントより速く行う解決策を見つけることでした。私が思いついた解決策は、開始ボディタグの直後に次の文を実行することでした。
<script type="text/javascript">//<![CDATA[
var elBody = document.getElementsByTagName('body')[0];
elBody.className = elBody.className.replace(new RegExp('no-js\\b'), 'js');//]]></script>
これはうまくいくようです。これ以上の画面ジャンプはありません。これは大丈夫ですか?私が気付いていないすべての短所?