检测ASP.NET中禁用JavaScript的时间

时间:2008-10-29 11:36:54

标签: asp.net javascript controls progressive-enhancement

在ASP.NET Web控件的Render方法中,我需要根据客户端浏览器上是启用还是禁用JavaScript来更改Html的输出,

有没有人知道正确的咒语来解决这个问题?

5 个答案:

答案 0 :(得分:13)

使用脚本检查是否启用了javascript的问题是,只有在脚本未运行后才能找到它。

一些解决方案尝试相反 - 他们使用javascript设置值,然后提供启用Javascript的控件(如果稍后检测到该值)。但是,这有点像Firefox NoScript插件这样的javascript有时启用的工具。

更强大的解决方案是始终发送纯HTML兼容控件,然后在页面加载时运行javascript以添加正确的事件处理程序/额外的DOM元素/等。

但是我不知道这与ASP.NET方法对控件的适用性如何。

答案 1 :(得分:3)

如果未执行脚本,noscript标记用于定义备用内容(文本)。

编辑:嗨Kieron,请看一下这个链接:Creating a Server Control for JavaScript TestingDetect if JavaScript is enabled in ASPX

答案 2 :(得分:3)

浏览器不会将Javascript可用性与请求进行通信。

我做过的一件事,虽然我不确定它是否适用于您的情况,但生成页面就好像没有启用Javascript,然后有一些Javascript关闭仅HTML的东西并打开HTML-Javascript的东西。

你也可以通过Javascript将第一页点击“phone home”,在会话中记录Javascript是否启用。

答案 3 :(得分:0)

这是一种检查表单提交时间的方法。

http://www.4guysfromrolla.com/webtech/082400-1.shtml

我不认为有任何Request属性可以告诉您何时首次请求页面。有一个属性会告诉您浏览器是否支持JS,但是如果启用了则不会。 See Here

答案 4 :(得分:0)

你需要做的就是这个。经过大量测试和深夜,我决定使用最简单的解决方案。将标签拖到页面顶部,并确保其显示为“在服务器上运行”。然后,对于Text属性,输入Text =“此网站需要Javascript”。那应该是最好的答案。 :d