Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[ASP.NET 2.0 VB] Check javascript enabled

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een website die gebruik maakt van een masterpage.
Voordat de gebruiker op de masterpage komt moet ie eerst inloggen.
nu wil ik een check doen of de client javascript heeft enabled.
Via asp.net kan je alleen checken of de browser javascript ondersteunt maar
niet of de client het enabled of disabled heeft.
Op internet las ik dat de oplossing daarvoor is een javascript functie te maken
en dat die je doorstuurt naar de pagina met javascript en dat je een <noscript>
maakt en daar een tekst in zet met: uw heeft javascript disabled...
dat werkt voor niet master page, zoals inloggen, prima.
Maar iemand kan inloggen met javascript en dan javascript uitzetten als hij/zij
op de masterpage is, daarvoor wil ik een check inbouwen.
Een oplossing daarvoor is de meta http-equiv="Refresh" tag, maar de gebruiker
kan ook meta refresh disablen.

Verder heb ik geprobeerd een response.redirect te doen
in de <noscript> met <% response.Redirect("pagina.aspx") %>
maar deze wordt altijd uitgevoerd met javascript enabled en disabled.
Dit was mij een raadsel, want dit was wel de oplossing geweest.

Ik hoop dat iemand mij kan helpen met dit probleem. Het moet dus een nette oplossing
zijn die niet uit te schakelen is en die binnen een masterpage werkt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:14
Wat bedoel je met 'als hij op de master-page' is ? Een master-page is nl. een bepaald concept in ASP.NET 2.0, en ik vermoed dat je hier iets anders bedoeld ?

Tja, als iemand nadien javascript disabled, wat ga je er tegen doen ? Dat kan je imho niet afvangen.
Wat doe je precies met javascript dat het zo 'mission-critical' is ?

Response.Redirect werkt idd altijd -zowel met JS disabled als enabled- aangezien Response.Redirect op de server gebeurt.

https://fgheysels.github.io/


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Zorg dat iedere pagina die men ziet standaard verwijst naar een pagina die controleert of JavaScript in- of uitgeschakeld is. Zoiets:

VBScript:
1
Response.Redirect("/jscheck.asp")


En op die pagina laat je met JavaScript terug verwijzen naar de opgevraagde pagina:

JavaScript:
1
document.location.href='<%=requestedPage%>';


Nadeel hiervan is dat voor iedere pagina 2 requests gedaan worden, dat maakt je site ergerlijk traag.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Verwijderd

Topicstarter
whoami schreef op dinsdag 18 september 2007 @ 14:30:
Wat bedoel je met 'als hij op de master-page' is ? Een master-page is nl. een bepaald concept in ASP.NET 2.0, en ik vermoed dat je hier iets anders bedoeld ?
Ik bedoel daarmee de pagina's die onderdeel zijn van de masterpage.
whoami schreef op dinsdag 18 september 2007 @ 14:30:
Tja, als iemand nadien javascript disabled, wat ga je er tegen doen ? Dat kan je imho niet afvangen.
Wat doe je precies met javascript dat het zo 'mission-critical' is ?
Het is niet zozeer wat ik ermee doe maar het is voor klanten dus is het wel zo netjes om dat goed af te vangen en de gebruiker ervan op de hoogte te stellen dat javascript disabled is. Meeste gebruikers hebben het wel aan maar toch. Bijna elke website maakt wel gebruik van javascript.
whoami schreef op dinsdag 18 september 2007 @ 14:30:
Response.Redirect werkt idd altijd -zowel met JS disabled als enabled- aangezien Response.Redirect op de server gebeurt.
Ja dat is het natuurlijk 8)7. Ik had ook nog geprobeerd de Title van de website aan te passen in javascript en dan met asp een check te doen wat de Title is, maar hier stuit je op hetzelfde probleem van server-side code en client-side code.
Er moet toch wel iets zijn waar je in de source code van de master page een check kan doen en vervolgens een redirect indien js disabled is :?

Verwijderd

Topicstarter
CodeCaster schreef op dinsdag 18 september 2007 @ 14:40:
Zorg dat iedere pagina die men ziet standaard verwijst naar een pagina die controleert of JavaScript in- of uitgeschakeld is. Zoiets:

VBScript:
1
Response.Redirect("/jscheck.asp")


En op die pagina laat je met JavaScript terug verwijzen naar de opgevraagde pagina:

JavaScript:
1
document.location.href='<%=requestedPage%>';


Nadeel hiervan is dat voor iedere pagina 2 requests gedaan worden, dat maakt je site ergerlijk traag.
En in die jscheck.asp doe je dan een <noscript> met een melding dat javascript disabled is. Aan deze mogelijkheid heb ik ook zitten denken. Het is wel jammer dat je site dan traag wordt ja :X

Ik heb het eens uitgeprobeerd maar in mijn situatie werkt het niet. De requestedPage is namelijk altijd de login pagina en niet de startpagina of een van de andere pagina's, dus als ik ze dan terugstuur als ze wel javascript enabled hebben moeten ze weer opnieuw inloggen en zo ontstaat een oneindeloze loop. Zoals hier al werd gezegd, de server side code (asp.net) wordt uitgevoerd voor de html code, dus vandaar dat het altijd login pagina is omdat de startpagina niet geladen wordt.

[ Voor 24% gewijzigd door Verwijderd op 18-09-2007 15:58 ]


  • Padschild
  • Registratie: September 2004
  • Laatst online: 28-11-2020
Ik heb even MSDN voor je doorgespit, kan nu even het zelf niet uitproberen, maar volgens MSDN kun je het op deze manier checken:

Visual Basic .NET:
1
2
Dim bc As HttpBrowserCapabilities = Request.Browser
Response.Write("Supports JavaScript = " & bc.JavaScript & "<br>")


Weet natuurlijk niet of de browsers ook netjes doorsturen of ze 'geen javascript ondersteunen' als het disabled is... Dat zul je even moeten uitproberen :)

MSDN Request.Browser

Verwijderd

Topicstarter
Padschild schreef op dinsdag 18 september 2007 @ 14:59:
Ik heb even MSDN voor je doorgespit, kan nu even het zelf niet uitproberen, maar volgens MSDN kun je het op deze manier checken:

Visual Basic .NET:
1
2
Dim bc As HttpBrowserCapabilities = Request.Browser
Response.Write("Supports JavaScript = " & bc.JavaScript & "<br>")


Weet natuurlijk niet of de browsers ook netjes doorsturen of ze 'geen javascript ondersteunen' als het disabled is... Dat zul je even moeten uitproberen :)
Dat checkt alleen of de browser javascript ondersteunt en niet of het enabled of disabled is. Ik krijg altijd TRUE terug terwijl ik javascript disabled heb. Toch bedankt voor het uitzoekwerk :)

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
Als je bezoekers javascript uitschakelen nadat ze ingelogd zijn weten ze blijkbaar wat ze doen.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • xtra
  • Registratie: November 2001
  • Laatst online: 19-11 10:57
Verwijderd schreef op dinsdag 18 september 2007 @ 14:16:
Verder heb ik geprobeerd een response.redirect te doen
in de <noscript> met <% response.Redirect("pagina.aspx") %>
maar deze wordt altijd uitgevoerd met javascript enabled en disabled.
Dit was mij een raadsel, want dit was wel de oplossing geweest.
Hier ben je volgens mij clientside en serverside scripts aan het mixen. Dat werkt nooit. Die redirect wordt gestuurd nog voor er één teken html is gestuurd.
Ik hoop dat iemand mij kan helpen met dit probleem. Het moet dus een nette oplossing
zijn die niet uit te schakelen is en die binnen een masterpage werkt.
Alles is uit te schakelen. Gebruik het dus niet als onderdeel van je beveiliging.

Een min of meer nette manier is om te controleren of javascript is ingeschakeld op het moment dat je het nodig hebt. Alles wat niet afhankelijk is van javacript is dan gewoon bruikbaar.

Een alternatieve manier is om in een noscript-block een melding te geven dat javascript is uitgeschakeld. Met een onload-functie verberg je die tekst en laat je het gewenste deel van de site zien.

Verwijderd

Topicstarter
riezebosch schreef op dinsdag 18 september 2007 @ 15:27:
Als je bezoekers javascript uitschakelen nadat ze ingelogd zijn weten ze blijkbaar wat ze doen.
Ja maar als de helft van je site niet functioneert is dit niet netjes, tuurlijk is het hun eigen schuld. Maar sommige mensen volgen van die computerbladen en "denken" hun computer veiliger te maken door javascript uit te schakelen zonder het besef dat sites dan niet meer volledig functioneren. Ik vind het gewoon netjes daar een melding van te maken en de site niet te tonen voordat ze javascript weer ingeschakeld hebben.

Verwijderd

Topicstarter
xtra schreef op dinsdag 18 september 2007 @ 15:29:
Alles is uit te schakelen. Gebruik het dus niet als onderdeel van je beveiliging.

Een min of meer nette manier is om te controleren of javascript is ingeschakeld op het moment dat je het nodig hebt. Alles wat niet afhankelijk is van javacript is dan gewoon bruikbaar.

Een alternatieve manier is om in een noscript-block een melding te geven dat javascript is uitgeschakeld. Met een onload-functie verberg je die tekst en laat je het gewenste deel van de site zien.
Ik gebruik het ook niet voor beveiliging maar voor gebruikersvriendelijkheid, de gebruiker laten weten dat ze de site niet kunnen bekijken zonder javascript. Het menu dat ik gebruik zit namelijk javascript in, het menu staat op de masterpage dus is na het inloggen altijd zichtbaar. Zonder javascript werkt het dropdownmenu dus niet, dus kunnen ze niet verder dan de startpagina. Vandaar dat ik de check wil doen in de masterpage file.

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-11 11:15

sopsop

[v] [;,,;] [v]

Verwijderd schreef op dinsdag 18 september 2007 @ 15:51:
[...]
Ja maar als de helft van je site niet functioneert is dit niet netjes, tuurlijk is het hun eigen schuld. Maar sommige mensen volgen van die computerbladen en "denken" hun computer veiliger te maken door javascript uit te schakelen zonder het besef dat sites dan niet meer volledig functioneren. Ik vind het gewoon netjes daar een melding van te maken en de site niet te tonen voordat ze javascript weer ingeschakeld hebben.
Dit soort dingen doe je toch gewoon bij je sessie start. Hoe je maar één keer per sessie te redirecten. En de kans dat iemand een computerblaadje gaat lezen en javascript gedurende die sessie uitzet is natuurlijk te verwaarlozen. Daarnaast kun je dat ook afvangen door gewoon standaard een <noscript/> block in je pagina te verwerken.

Verwijderd

Topicstarter
sopsop schreef op dinsdag 18 september 2007 @ 16:10:
Dit soort dingen doe je toch gewoon bij je sessie start. Hoe je maar één keer per sessie te redirecten. En de kans dat iemand een computerblaadje gaat lezen en javascript gedurende die sessie uitzet is natuurlijk te verwaarlozen. Daarnaast kun je dat ook afvangen door gewoon standaard een <noscript/> block in je pagina te verwerken.
Dat heb ik nu gedaan ja en de kans is misschien klein ja. Ik heb het ook afgevangen met een <noscript/> block alleen die tekst die je dan ziet komt tussen de content van je pagina, ik probeerde dat te voorkomen door dus alleen een tekst te laten zien, dat is blijkbaar niet mogelijk omdat je niet serverside en clientside door elkaar kan gebruiken. Enige oplossing die ik tegen ben gekomen is meta refresh (zoals bovenin genoemd), alleen die is ook weer uit te zetten.
Ik was gewoon nieuwsgierig of er een oplossing voor was... :/

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Dan zorg je met css toch dat het noscript-blok over je hele html heenkomt?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

Je pagina niet opbouwen als je geen javascript hebt lijkt me in iedergeval geen goed idee. Voornamelijk voor zoekmachines, ik geloof niet dat die zo slim (of dom) zijn om javascript code uit te voeren.

En vanuit die redenatie lijkt me de beste oplossing dat wat CodeCaster zegt.

The one who says it cannot be done, should never interrupt the one who is doing it.


Verwijderd

Topicstarter
ja dat is inderdaad een idee ja, bedankt voor de tip :)

Verwijderd

met Ajax een pagina request doen waar je een sessie zet.

Als die Sessie niet gezet is werkt de Ajax call niet en kun je er van uit gaan dat er geen javascript aanwezig is.
Pagina: 1