2011-07-22 4 views
2

ここにシナリオがあります:私はページにあらかじめロードして、表示プロパティをhiddenに自動的に設定するdivを持っています。私はjavascriptを使って上記のdivをポップアップしています。問題は、クライアントがCSSを無効にしているときに明らかにDIVを見ることができるときです。私のjavascript関数が呼び出されたときだけ、div(またはdivの内容)を表示する最良の方法は何ですか?CSSが無効になっているときに、どのようにdivを隠すことができますか?

私が考えることができる最良の方法は、生のHTMLをjavascriptのvarに渡してからjavascriptを使ってすべてのHTMLを読み込むことですが、これは少し遅いです(HTMLのまともな量)まだ存在していないDIVを参照しようとするときに起こります。

他のより洗練されたソリューションですか?

おかげ

+5

投稿者のスタイリングを適用しないことを選択したユーザーが作成者のスクリプト作成を許可するチャンスは何ですか? :-) –

+1

CSSが無効になっているとはどういう意味ですか? Javascriptを無効にしても、CSSは無効になっています...あなたは説明できますか? –

+0

@Kerrek:私が質問を読んでいたときに爆発した正確なこと::) – Chandu

答えて

3

CSSが無効になっている場合は、div要素を非表示にする唯一の方法は、DOMからそれを削除することです。

0

から完全に削除あなたがいない(div要素にインラインスタイルを設定することができますあなたのケースはとにかく例外です)。

あなたはdivを非表示にするには、ページの読み込みにJS/jQueryのを使用することができますが、それは(JSがそれを隠すために実行されるまでdivが一瞬表示されwiil)フリッカー効果を引き起こします。

+0

CSSが無効の場合、インラインスタイルで表示されますか? –

+0

私は異なったブラウザが異なって反応すると思います。より安全な賭けは@ティマシューの提案を試みるでしょう。 – Mrchief

-2

javascriptを使用して非表示にしたいdivの高さを設定します。

$( '#mydiv')。css( "height"、 "0px");

+1

うーん、興味深いことに 'css()'が 'CSS'が無効になって動作する方法に興味があります。 – Phil

0

ページが読み込まれたときにjavascriptを使用していないユーザーに表示されるように、おそらくサイト機能の一部にJSが必要であることを示すようにdivを設定します。

このdivをJSと排他的に使用する必要がある場合は、既にページに表示されていることが悪いアプローチです。あなたは、少なくともコンテンツの上にそれを作成する必要があります。

このようにして、CSSを使用していないユーザーには表示されないようになりますが、JSを有効にした残りのユーザーには表示できます。

関連する問題