2011-07-18 115 views
2

我已經看到幾種檢測javascript是否啓用的方法。我有一個獨特的情況。 Global.asax處理所有拋出的錯誤檢測服務器端啓用的Javascript

protected void Application_Error(Object sender, EventArgs e) 
{ 
    //email development team 
} 

最近,我遇到了人們在他們的機器上禁用javascript的問題。這些是公司機器,他們不允許這樣做。我可以添加一些JavaScript檢測到母版頁,但我不知道我怎麼能得到這個到上面的「全部捕捉」方法。

如何在此場景中的客戶端上啓用javascript功能?

+0

不要在服務器上執行此操作,請在客戶端上執行此操作。使用'

+0

@Raynos - 我想通過電子郵件發送,如果訪問者禁用了javascript。他們應該爲此遇到麻煩。我不想添加友好的錯誤消息。用'

+1

@ P.Brain.Mackey應該是一個IE用戶設置sysadmin的東西。要發現他們只是發送一個ajax消息,說「javascript已打開」,併發送自己的電子郵件,如果你沒有在n秒內得到消息。作爲一個附註,這是代碼債務。重新設計您的網站,使其無javascript工作。禁止用戶關閉javascript是一個愚蠢的公司政策。 – Raynos

回答

4

您可以使用JavaScript來改變頁面的onload事件隱藏字段的值。

如果你上回發新值,然後啓用javascript

1

這給出了一個徹底的explanantaion什麼你需要

http://www.codeproject.com/KB/aspnet/JavaDetectService.aspx

+0

+1兩個答案。這些是有幫助的。我將與Raynos解決方案一起使用並使用AJAX並在客戶端進行檢測。 @Raynos如果你張貼這個作爲你的答案,我會將其標記爲這樣。它符合我所要求的所有要求,並且可能更易於維護。 –

2

嗯,我不認爲你需要一般的js檢測爲特定的任務。我建議你添加一個<noscript>標籤,並將圖像放入該標籤。如果有人要求這個圖像,那麼你可能想要做那個你正在談論的錯誤邏輯。

我會嘗試找到一些資源,協作的瀏覽器不會獲取<noscript>標籤裏面的內容,如果scrips被啓用。

編輯 看到這個previous stackoverflow post欲瞭解更多信息。這很直觀,這一定是真實的,但有很多背後的意見是很好的。

哦,我剛纔看到你用AJAX會+等待n approach.I會強烈建議不要說,看到你怎麼可能很容易得到誤報 - 當用戶快速導航離開這個可能發生從被困頁面或某種臨時網絡延遲發生。

雖然你不感興趣,但這種方法有優雅降級的額外好處。陷阱圖像可能會向用戶顯示如何打開腳本。 :)