【发布时间】:2014-10-17 11:00:04
【问题描述】:
我已经看到很多解决方案来检查用户是否在 C# 的服务器端禁用了 JavaScript(我的意思是真的禁用了,而不是如果浏览器不支持 JavaScript,因为我已经尝试过 EcmaScriptVersion)。
这是我找到的两篇文章:
- How to detect if JavaScript is enabled from the server side in C#/.NET
- Detect if JavaScript is enabled in ASPX
我目前正在尝试 Nuno Freitas 的第一种方法,因为它似乎是最干净的,无需使用查询字符串参数,但从未设置会话变量,也从未调用 SetJavascriptEnabled。
我已经像这样将 ScriptManager 添加到我的 aspx 页面中
<asp:ScriptManager ID="scriptManager" runat="server" EnablePageMethods="true"/>
并且启动脚本被注册为文章中(在 OnPreRender 事件中),但它没有显示在页面中。顺便说一句,这是一个使用 sitecore 的网站。
有什么帮助吗?
【问题讨论】:
-
我们无法为您写下解决方案。努力,给我们看一些代码,解释为什么它不起作用......
-
您的问题不在于检测 Javascript。它正在调用网络方法。你应该问一个问题,为什么你的第一个解决方案不起作用。
-
你看到页面上嵌入的JS了吗?查看源代码并检查
PageMethods.SetJavascriptEnabled或类似名称 - 如果页面上没有,则不会调用它。还要检查您的浏览器控制台是否存在调用方法的错误。 -
是的,我检查了 PageMethods.SetJavascriptEnabled 不在页面中:\
-
那么听起来你没有正确连接它的那部分......在你的代码隐藏中你需要添加对
ClientScript.RegisterStartupScript的调用 - 确保它在代码中并且正在打。根据文章,这不需要在预渲染事件中,它可以在其他地方。
标签: javascript c# asp.net sitecore webmethod