2011-07-22 82 views
2

這裏是場景:我有一個div,我預先加載到一個頁面,並自動將其顯示屬性設置爲隱藏。我使用JavaScript來彈出所說的div。問題是,當客戶端禁用CSS時,他們顯然可以看到DIV。只有當我的JavaScript函數被調用時才能顯示div(或div的內容)的最佳方式是什麼?如何禁用CSS時隱藏div?

我能想到的最好方法是將原始HTML傳遞給一個javascript var,然後使用javascript加載所有的HTML,但是,這有點慢(導致腳本中斷)當它試圖引用還不存在的DIV時。

其他更優雅的解決方案?

感謝

+5

選擇不應用作者樣式的用戶將允許作者腳本的機會有多大? :-) –

+1

你是什麼意思CSS禁用? Javascript已禁用,但CSS禁用並不常見......您能解釋一下嗎? –

+0

@Kerrek:當我讀到這個問題時,請確定彈出的內容.. :) – Chandu

回答

3

如果CSS被禁用,則隱藏div的,唯一的辦法就是從DOM中刪除。

0

您可以在DIV設置內嵌樣式(不推薦,但你的情況是一個例外)。

您可以在頁面加載時使用JS/jQuery來隱藏div,但它會導致閃爍效果(div將會在JS運行時隱藏起來)。

+0

如果css被禁用,內聯樣式將顯示? –

+0

我認爲不同的瀏覽器會有不同的反應。更安全的賭注是嘗試@timaschew建議。 – Mrchief

-2

使用javascript將你想隱藏的div的高度設置爲零。

$('#mydiv')。css(「height」,「0px」);

+1

嗯,有趣的是,'CSS(CSS)被禁用時'css()'將如何工作。 – Phil

0

當頁面加載時,您希望在頁面上有一個div,以便沒有javascript的用戶可以看到它,也許可以向他們指出某些網站功能需要JS工作。

如果你需要使用該JS獨佔JS然後讓它已經在頁面上是一個壞的方法恕我直言。您應該即時創建它,至少是內容。

通過這種方式,您可以確保沒有CSS的用戶不會看到它,同時仍然可以爲啓用了JS的其他人顯示它。