2014-10-17 37 views
0

我見過很多解決方案來檢查用戶是否在C#中禁用了服務器端的JavaScript(我的意思是非常殘疾,而不是如果瀏覽器不支持JavaScript,因爲我已經嘗試EcmaScriptVersion)。Sitecore - WebMethod未被調用

這裏有兩個,我發現的文章:

我目前正試圖從努諾·弗雷塔斯第一種方法,因爲它似乎是最乾淨的無必須使用查詢字符串參數,但會話變量永遠不會被設置,SetJavascriptEnabled也不會被調用。

我已經添加的ScriptManager到我的aspx頁面像這樣

<asp:ScriptManager ID="scriptManager" runat="server" EnablePageMethods="true"/> 

而且啓動腳本被登記在文章中(在OnPreRender事件),但它不是在頁面被顯示。順便說一句,這是一個使用sitecore的網站。

任何幫助?

+1

我們無法爲您寫下一個解決方案。努力工作,向我們展示一些代碼,解釋爲什麼它不起作用... – 2014-10-17 11:02:17

+0

您的問題不在於檢測Javascript。它調用Web方法。你應該問一個問題,爲什麼你的第一個解決方案不起作用。 – CodingIntrigue 2014-10-17 11:08:06

+1

你在頁面上看到嵌入的JS嗎?查看源代碼並檢查「PageMethods.SetJavascriptEnabled」或類似的內容 - 如果不在頁面上,則不會調用它。同時檢查您的瀏覽器控制檯是否有調用方法的錯誤。 – 2014-10-17 11:12:49

回答

0

基本上,這些文章正在檢查的是,如果在寫入ajax($ .ajax)代碼後沒有從客戶端到服務器端發生ajax調用,則javascript被禁用。這是一種間接的檢查方式。

+0

那麼更直接的方法是什麼? – 2014-10-17 11:15:41

+0

@HélderGonçalves真的沒有一個:(這些是你最好的投注,但它們是間接的並且受到兩種延遲的影響(直到第一頁加載完成並且JS已經運行之後,你纔會真正知道)以及用戶在打電話之前可以離開,或者可能無法完成 - 沒有一個是理想的。 – 2014-10-17 11:27:17