javascript afdwingen?
<div id="PAGE">
// hier komt alle content
</div>
<script>
showpage();
</script>
<noscript>
U moet javascript inschakelen.
</noscript>
In de pagina zet je in de <head> via css PAGE op display none waardoor de inhoud van PAGE in 1e instantie niet zichtbaar is. Via javascript zet je de display van PAGE op block waardoor de inhoud wel zichtbaar wordt. Mensen die geen javascript hebben krijgen de inhoud niet te zien en in plaats daarvan een melding dat ze javascript moeten inschakelen. Dit zou je dan op iedere pagina op deze manier kunnen doen. Wat vinden jullie er van?
Risico is dat de potentiele klant dan meteen foetsie is en een andere website zoekt of dat een potentiele klant meteen bang wordt voor "U moet javascript aanzetten"
Oke, daar heb je gelijk in... maar afgezien daarvan... zou deze methode werken... en waterdicht zijn?
Ozzie PHP op 11/02/2011 09:53:10:
Kan ik niet helemaal beoordelen, kwestie van veel testen met alle beschikbare browsers.Oke, daar heb je gelijk in... maar afgezien daarvan... zou deze methode werken... en waterdicht zijn?
hmmmm, oke... het lijkt me op zich wel een geinige manier. Css uitschakelen zodat de pagina toch getoond wordt gaat voglens mij niet omdat ik de css in het bestand zelf zet.
Op die manier behoud je wel de content, maar wordt deze niet getoond zonder javascript.
Vraag is alleen of je dit echt wilt..
"Als je de Div een inline style meegeeft met display:none..."
Bedoel je aan het element zelf, dus <div id="PAGE" style="display:none"> of mag het ook bovenin in de <head>?
En zou je dit nog verder kunnen doorvoeren vraag ik me nu ineens af... dat je bijvoorbeeld de content van de PAGE div inlaadt via ajax? Als iemand dan geen javascript heeft ingeschakeld, dan ziet ie in de broncode ook niks staan. Zou dat werken?
Knoppen (buttons, links, ...) die enkel een werking hebben via javascript, kan je laten genereren door javascript.
Wie javascript uit heeft staan, krijgt die knoppen dan niet te zien.
Voor de rest van je site moet je dan maar zorgen dat alles ook werkt zonder javascript.
Eventueel kan je een bericht zetten waarin je zegt dat javascript best aan staat, bij het laden van de pagina zet je die mededeling onzichtbaar.
Gewijzigd op 11/02/2011 11:04:15 door Kris Peeters
Wat ik zou willen is... als ik bijvorbeeld een beheer / cms systeem ga maken waarbij voor sommige functies en (beveiligings)controles javascript vereist is, het systeem niet werkt als mensen javascript hebben uitgeschakeld.
Sterker nog, ik wil dat ze niet eens kunnen inloggen als javascript is uitgeschakeld. Wat zou dan de beste manier zijn?
Gewijzigd op 11/02/2011 11:16:13 door - Mark -
"Zo te lezen ben je behoorlijk verkeerd bezig." Ik ben nog niet bezig... het is puur een gedachte die speelt. Maar er zijn toch heel veel websites waarbij je met een onclick een product in een winkelmand gooit waarbij er een aantal functies via javascript worden aangeroepen. Als iemand geen javascript heeft werkt het dus niet. Tuurlijk kun je dan zeggen dat het niet goed geprogrammeerd is, maar het is vaak wel de realiteit. Daarom speelt bij mij deze gedachte dus. En dan kan ik me nog voorstellen dat je dat bij een publieke site niet doet, maar bij een intern beheersysteem (bijv. uit veiligheidsoverwegingen) wel.
Dat iets veel voor komt wil niet zeggen dat iedereen het zo moet doen. En al helemaal niet als het fout is. Het voorbeeld dat je geeft met de onclick is iets dat de gebruikers ervaring verbeterd. Dat is natuurlijk mooi, maar als jij de gebruiker gaat pesten omdat ze geen javascript hebben aanstaan lopen ze gewoon weg. Zorg er dus voor dat het ook werkt zonder javascript. Zo veel moeite is het niet. Tevens maakt het deze groep mensen niet uit dat ze een paar keer meer moeten klikken. Ze kiezen daar namelijk zelf voor.
Javascript en veiligheidsoverwegingen is niet iets dat bij elkaar hoort. Met javascript kun je niets beveiligen.
Ik heb ooit... weet niet meer precies hoe het zat... met javascript een button zo ingesteld dat ie heel even na het klikken disablede, zodat iemand niet als een gek 100 keer achter elkaar op die button kan klikken. Weet niet meer precies hoor hoe het zat... maar via javascript kon je dat 'veel klikken' wel heel mooi tegengaan. Ik ben alleen ff de exacte context kwijt waarin zich dit afspeelde.
Anyhow... maak jij je sites dan altijd zo dat deze ook te gebruiken zijn door mensen die geen javascript hebben ingesteld?
Ik noem eens een heel simpel voorbeeldje. Stel je hebt een beheersysteem waarin je informatie van orders kunt opvragen. Stel je vraagt de orders van vandaag op en er worden er 50 getoond. Door op de ordertitel te klikken klapt daaronder een divje open met meer informatie over die order. Zou jij dan een extra pagina maken die wordt geopend op het moment dat mensen geen javascript hebben ingeschakeld? Zo ja, dan moet je namelijk vrijwel alles dubbel gaan uitvoeren.
Gewijzigd op 11/02/2011 11:56:52 door Ozzie PHP
Over het beheer systeem.
Het open klappen van het informatie divje is iets dat de gebruikers ervaring verbeterd. Zoals je al zegt werkt dit natuurlijk niet als Javascript is uitgeschakeld. Mensen missen nu dus deze functie. Dit probleem kun je op verschillende manieren oplossen.
1. De informatie altijd weergeven.
2. De pagina zo splitsen dat je een lijst hebt met de orders en daarnaast de informatie. Met javascript kun je de informatie inladen zonder de pagina te refreshen en als het uitstaat moet de pagina opnieuw worden geladen.
en zo kan ik nog wel een tijdje door gaan. Je wilt iets teveel met javascript doen naar mijn mening. Dat is niet verkeerd maar ik zou er geen vereiste van maken.
Bedrijf A order 001
Bedrijf B order 002
Bedrijf C order 003
enz.
En als je dan op een titel klikt krijg je bijvoorbeeld:
Bedrijf A order 001
bedrag 99,- besteld op 11 feb. 2011 door Pietje Puk
afleveradres:
Langestraat 1
9999xx
StadDorp
Bedrijf B order 002
Bedrijf C order 003
Wat te doen als javascript niet werkt? Al die divjes standaard open zetten wordt ook een warboel lijkt me...
Door verschil in opmaak kun je heel gemakkelijk verschil zien tussen titel en content. en dus heel gemakkelijk de order vinden die je zoekt.
Gewijzigd op 11/02/2011 12:48:34 door - Mark -
Wat ik liet zien is natuurlijk maar een simpel voorbeeldje. Ik zou me kunnen voorstellen dat er 50 orders onder elkaar staan en dat er veel meer informatie in die div staat. Vandaar dat mijn keuze zou zijn om die dan niet standaard open te klappen. Maar ik denk dat dat ook een stukje persoonlijke smaak is. Ik vind het beter / gebruiksvriendelijker om snel te kunnen vinden wat ik zoek. Jij vindt het beter om een heleboel informatie te tonen. Kwestie van smaak denk ik.
Ik vindt het niet beter om altijd een heleboel informatie te tonen. Dat hangt af van de situatie. Als je hele lappen tekst bij een order hebt staan moet je die inderdaad niet allemaal gaan weergeven.
Maar als ik het goed begrijp is de meest simplistische manier dus om alle dingen die zichtbaar zouden moeten kunnen zijn open te zetten, en dan via javascript te sluiten. Iemand die geen javascript heeft ziet alles, bij iemand die wel javascript heeft is alles netjes ingeklapt en die kan op een knopje drukken om iets te openen.
Je kunt de gebruiker altijd een eige keuze geven natuurlijk. Laat het hem instellen hoe hij het wil. Alles open / eerste 5 / alles gesloten / onclick / onmouseover of wat er ook van toepassing is.
Thanks voor het meedenken.