2014-10-17 70 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