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

问题描述 投票:11回答:5

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

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

asp.net javascript controls progressive-enhancement
5个回答
13
投票

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

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

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

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


3
投票

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

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


3
投票

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

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

您还可以通过Javascript将第一页打到“phone home”,在会话中记录Javascript是否已启用。


0
投票

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.