14

私はJavaScriptを使用して、次を使用してスタイルシートを有効/無効にしています:

document.styleSheets[0].disabled = true|false;

この JS は問題なく動作しますが、スタイルシートをデフォルトで無効にしたいと考えています。上記の JS を使用して、ページの読み込み時にすぐにスタイルシートを無効にすることもできますが、これは明らかに JavaScript がオフになっているユーザーには機能しません。

私はこれをやってみました:

<link rel="stylesheet" href="style.css" disabled />

これによりスタイルシートが無効になりますが、JavaScript (または少なくとも私が使用している方法) はそれを再び有効にすることはできません。disabled="disabled"また、「無効」属性でこれらのバリエーションdisabled="true"をすべて試しましたdisabled=true:

つまり、JavaScript を使用して外部スタイルシートを有効/無効にする方法が必要ですが、そのスタイルシートはデフォルトで無効になっていますが、JavaScript に依存していません。

どんな助けでも大歓迎です。ありがとう。

注: この効果は、2 つのスタイルシートを使用して実現できます。2 番目のスタイルシートは最初のスタイルシートを上書きします。したがって、"disabled" 属性は必要ありません。ただし、可能であれば単一のスタイルシートのみを使用することが明らかに望ましいため、上記の私の質問です。

4

3 に答える 3

17

そのためには、JavaScript の removeAttribute メソッドを使用できます。

<html>
    <head>
        <link id="first_style" rel="stylesheet" href="#" disabled />

        <script type="text/javascript">
            window.onload = function()
            {
                document.getElementById('first_style').removeAttribute('disabled');
            }
        </script>
    </head>
    <body>
        <p>something</p>
    </body>
</html>
于 2012-05-12T15:12:19.597 に答える
3

問題を回避してみませんか : JavaScript が有効な場合にのみ CSS をロードしますか?

この例から取得すると、次のようなものを使用できます。

var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
于 2012-05-12T15:09:02.033 に答える
1

この場合、JavaScript に頼る必要があるかもしれません。

デフォルトで無効にするのではなく、必要に応じてスタイルシートを提供する行をより深く考える場合は、それを釘付けにする必要があります。

于 2012-05-12T15:08:13.567 に答える