Detect when JavaScript is disabled in ASP.NET

2020-07-05 06:28发布

In the Render method of an ASP.NET web-control, I need to alter the output of the Html based on whether JavaScript is enabled or disabled on the clients browser,

Does anyone know the right incantation to figure that out?

5条回答
欢心
2楼-- · 2020-07-05 07:11

The noscript tag is used to define an alternate content (text) if a script is NOT executed.

EDIT: Hi Kieron, take a look at this link: Creating a Server Control for JavaScript Testing, and Detect if JavaScript is enabled in ASPX

查看更多
乱世女痞
3楼-- · 2020-07-05 07:13

The browser does not communicate Javascript availability with the request.

One thing that I have done, though I'm not sure it is applicable in your case, is generate the page as if Javascript is not enabled, then have some Javascript that turns off the HTML-only stuff and turns on the HTML-Javascript stuff.

You could also have the first page hit "phone home" via Javascript to record in the session whether Javascript is enabled or not.

查看更多
甜甜的少女心
4楼-- · 2020-07-05 07:18

The problem with using script to check whether javascript is enabled is that you only find that out after the script hasn't run.

Some solutions try the opposite - they use javascript to set a value and then supply Javascript enabled controls if that value is later detected. However, this fails with javascript-sometimes-enabled tools like the Firefox NoScript plugin.

A more robust solution is to always send the plain-HTML compatible control, and then have javascript run on page load to add the correct event handlers/extra DOM elements/etc.

However I don't know how this fits in with the ASP.NET approach takes to controls.

查看更多
男人必须洒脱
5楼-- · 2020-07-05 07:28

This is a way to check when a form is being submitted.

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

I dont think there is any Request property that will tell you when the page is first requested. There is a property that will tell you if the browser supports JS, but not if its enabled. See Here

查看更多
可以哭但决不认输i
6楼-- · 2020-07-05 07:29

What you need to do is this. After much testing and late nights, I decided to use the most simple solution. Drag a label onto the top of the page and make sure it reads "run at server". Then, for the Text attribute, put Text="This website requires Javascript". That should be the best answer. :D

查看更多
登录 后发表回答