2012-05-20 44 views
0

我在使用jquery document.ready事件的網站上測試客戶端驗證時發現了一些有趣的事情。禁用JS之後事件處理程序代碼是否爲「persistent」?

如果我加載了禁用js的登錄頁面,其noscript標記會將用戶重定向到另一頁面,以通知js支持未在瀏覽器上啓用。

如果我加載支持JS的登錄頁面,然後進行禁用它,安裝在其的document.ready事件的代碼仍在運行和驗證,完全在其登錄名和密碼字段爲空輸入。

因爲我沒有看到請求服務器執行這種驗證的頁面,我想知道它是否正確假設js最初啓用的事實足以讓document.ready運行並永久附加代碼事後如何切換js支持?或許我錯過了什麼?

感謝大家能給我的見解。

回答

1

「禁用javascript」實際上是,如果所謂的「禁止JS從現在開始,」更接近現實。在禁用之前執行的所有內容都已執行。禁用後會發生的所有事情(例如超時,間隔等)不再執行。

+1

因此,由於document.ready事件在頁面加載和完成/完成時被觸發,無論之後是否禁用了js支持,附加到它的代碼都將運行? (當然沒有頁面重新加載)。 – CoderRoller

+0

這似乎是網頁行爲的邏輯原因,如果您可以請確認我的評論以將其標記爲答案。謝謝! – CoderRoller

1

瀏覽器仍然您在設置中禁用JS即使當前打開的網頁運行JS。 JS禁用時加載的任何新頁面都將禁用其腳本。

這就像瀏覽器只檢查,只有在頁面加載設置:

Load page -> is scipts on? -> yes -> run  //changing it anywhere after 
          -> no -> do not run //does not affect it's status 
+0

嗨約瑟夫,其實我認爲,但我已經嘗試過測試與連接到一個鏈接的onclick事件的警報一種形式,它再也沒有演出之後我切換沒有頁面重載頁面上的JS支持。 – CoderRoller

相關問題