Du skal være opmærksom på at IE7 så vidt jeg har kunne læse mig til har "meta refresh" slået fra som standart! - Har selv lige siddet og rodet med at prøve at detecte om javascript er slået til både på serveren og clienten, men har ikke fundet nogen god løsning.. På serversiden er det tilsyneladende ikke muligt da den slags ikke bliver sendt med i headeren, og på clientsiden er den eneste mulighed at bruge <noscript> til at vise noget alternativt indhold. (Eller evt. bare et link til en version af siden der duer uden javascript slået til - du kan jo evt. smide det ind i en div der skjuler alt andet på siden!?)
- Hvis du finder andre smarte løsninger hører jeg meget gerne :-)
Du kan under ingen omstændigheder bruge en meta i et noscript-element. Noscript-elementet må ikke ligge i head-elementet - og meta-elementet må kun ligge i head-elementet. Derudover må noscript-elementet kun have renderbart indhold.
Der _er_ ikke en metode til at sniffe den slags. Vi har været igennem det hundredevis af gange på E og den eneste løsning er:
Hm. den løsning bliver et problem for mig at anvende, da det kræver ret meget ombygning. Men er det ikke muligt med dit forslag Ole, at sætte en værdi, og efterfølgende tjekke værdien i et ASP script?
Hvordan vil du køre den sidste del af dit script hvis brugeren IKKE har slået javascript til? (Og hvis du vil gøre det på serveren tjekker den jo inden clienten har haft mulighed for at sætte javascript = true)
Jeg tager ikke gas på nogen, jeg spørger fordi jeg ikke ved det, men ok det kan man så ikke, ud fra dit svar. Jeg opgiver det javascript tjek, kan vel bare konstatere at microsoft her har sovet i timen og ikke kunne lave et gennemtænk websikkerhed.
He he.. Ja, man mister hurtigt overblikket når man forsøger at side og finde en løsning på tværs af server og client.. Var der selv for ikke så lang tid siden :-) maron: Det der står inde i no-script tagsne bliver kun læst hvis clienten har slået javascript fra i sin browser, og hvis javascript er slået fra kan den selvfølgelig ikke udføre din javascript kode ;-)
Hvis du kan fortælle lidt om hvorfor det er vigtigt for dig at vide om javascript er slået til eller ej, og hvad du har tænkt dig at gøre i det to forskellige scenarier kan det være at der er en der har et godt forslag til en løsning på lige netop dit problem!? :-)
Jamen jeg forsøger at beskytte nogen filer, herunder nogen fotos med java-script, så de ikke umiddelbart kan kopieres, og java-script kan jo også disable funktionen printscreen... DVS. så længe java-script er aktiveret, er filerne også nogenlunde- vel 99% beskyttet/sikret?
Har aldrig hørt om at javascript skulle kunne disable "print screen" - tvivler jeg stærkt på!? - Gennerelt er der så vidt ingen måde hvorpå du kan beskytte dine billeder. Du kan selvfølgelig gøre det lidt mere besværligt for folk der ikek er så rutinerede - men hvis folk vil have fat i dem skal de også nok få det :-)
Hvis du alligevel ønsker at gøre dette kunne du jo evt give alle dine billeder en CSS-style på "display: none;" og så i din window.onload, med javascript ændre den til "display: block;" (på den måde bliver billederne kun synlige hvis brugeren har javascript slået til :-))
<% dim js js = LCase(request.querystring("js")) if js = "ja" then session("javascript") = "ja" else session("javascript") = "nej" end if %>
Hvis du så har noget kode, der er afhængigt af JavaScript, kan du gøre sådan her:
<% if session("javascript") = "ja" then %> <script type="text/JavaScript"> alert("JavaScript siger Hello World!"); </script> <% end if %>
Du bestemmer selv om du vil bruge en session..
Fejlen ved denne fremgangsmåde er, at scriptet altid vil tro, at JavaScript er slået til/fra, og ikke ændrer status, med mindre at javascript.asp indlæses med parameteren, som fortæller scriptet at sessionen skal opdateres..
Hmm.. gad vide hvordan "url=javascript.asp?js=nej" bliver afviklet..? Vil den mon accepterer det andet "="..?
Hvis ikke, tror jeg at man kan nøjes med at bruge: "javascript.asp?nej", og så bruge:
dim item for each item in request.querystring if item = "ja" or request.querystring(item) = "ja" then session("javascript") = "ja" exit for end if next
Det er sikkert som at bruge en elastik som kondom. Du kan _intet_ beskytte med JavaScript ... og man behøver såmænd ikke være særlig øvet eller vidende. Den slags vader skræmmende mange 12-årige lige igennem =)
Du kan ikke disable menuen Vis -> Kilde ... dér står alle dine filstier.
Du kan skrive: java script:document.oncontextmenu=function(){return true};void(0)
- i browserens adresselinje og trykke 'Return'. Så kan du igen bruge højrekliks menuen, hvis du har brugt et fornuftigt script. De andre anti-højreklik-scripts er endnu lettere at bryde!
Således er der bunker af muligheder for at bryde dine forsøg på at skjule dine billeder. Når du har set billederne på en WWW-side, ligger de iøvrigt allerede på din PC, med mindre du også sætter specielle anti-cache headers på dine billeder ... men glem nu alt om den slags for 'beskyttelse'. Det virker ikke og du udstiller dig selv som uvidende (no offence) ;o)
Du kan _absolut_ intet gøre! Vi har været igennem dette hundredevis (hvis ikke tusindvis) af gange på Eksperten ... og det samme gælder for de fleste andre kodefora på WWW
Og som olebole allerede har vist, kan man nemt komme uden om koden..
Angående "vis kilde er deaktiveret i browseren":
Det er nok kun Internet Explorer der er ofret her..
Browseren Opera, som jeg har brugt i mange år, kan indstilles (og er det fra start) til at ignorere "no right click"-koder.. dvs, man kan ikke deaktivere adgang "vis kilde"..
Den eneste "sikkerhed" for at folk ikke stjæler dine ting, er ophavsretten..
Med andre ord:
Det du laver (billeder, lyd, video, osv), ejer du selv. Hvis folk vil bruge dataene, skal de bede dig om lov til at gøre det.
Du kan dog desværre ikke sikre dig, at de ikke gør det..
Det er lidt lige som betingelser (ved f.eks. deltagelse i konkurrence eller ligende), hvor et firma skriver "vi vil ikke sælge din email adresse til tredje part" osv. Der er intet der forhindre dem i af sælge din email adresse, til en eller anden.
Og de kan vel altid påstå, at det gør de ikke, fordi det står der i betingelserne at de ikke gør..
Hvilket er grunden til at jeg skriver: Hvis noget ikke må gemmes, skal det ikke lægges på nettet. Det er den eneste udvej.
maron: Hvis du tænker over det er det egentlig klart at man ikke kan sikre den slags fra en browser af.. Det ville kræve total kontrol over hele brugerens styresystem og i yderste konsekvens endda kontrol over monitorens output! :-) (Og selv der ville det være svært ;-) - kort fortalt: Hvis noget skal kunne ses vil det altid kunne kopieres)
maron> Hvis det f.eks. er billeder man ikke må stjæle, kan du skrive et eller andet hen over dem.. :-)
F.eks. et billede af en bil, hvor der på tværs af billedet står "MARON" med store fede bogstaver..
Man kan stadig se bilen, men billedet "falder i værdi", da ingen gider at have teksten på billedet..
Det skal være et sindsygt lækkert billede (eller bil), før man smider billedet i et billedbehandlingsprogram, og prøver manuelt på at fjerne teksten.. som typisk vil tage meget lang tid.. :-)
maron >> Det klogeste, man kan gøre, er at være realistisk i forhold til, hvad man kan og ikke kan - og i hvertfald ikke give andre skylden for egne mangler. Hvorfor ikke være ærlig og erkende, dit kendskab til JavaScript er yderst begrænset?
Hvad er dit bud på, hvordan jeg skulle have sagt det? For jeg går da udfra, vi kan blive enige om, det var dig selv, der lagde op til et svar, da du prøvede at 'tørre den af i ærmet' på Microsoft og Mozilla's programmører.
Hvad er det i min kommentar, der er så meget værre end din? Jeg kan ikke se nogen forskel på ligefremheden - eller ubehageligheden, om du vil. Den eneste forskel, jeg kan få øje på, er, at din betragtning var komplet ude i hampen ;o)
Ja, det er nok helt korrekt, men det var efter min mening ikke den væsentlige forskel.
Jeg havde to gange forsøgt at være forsigtig og undskyldende konstaterende med 'no offence' og 'still no offence'. Da så maron helt ubegrundet og ganske utilsløret antydede, at MS' og Moz' programmører var elendige, syntes jeg, vi efterhånden kendte hinanden godt nok, til at jeg kunne være ærlig og præcis - og fortælle, at det var ham, der havde manglerne ... déri lå forskellen ;o)
- men derudover synes jeg, vi burde lade den ligge her. Jeg har i hvertfald udtømt den for mit vedkommende - og formoder, jeg er blevet forstået. Hvis ikke ... tjah :)
Hvad siger folk til 13/08-2007 23:31:38 ( http://www.eksperten.dk/spm/791505#rid6833750 ) som løsning på problemet med "Kan man tjekke om java-script er aktiveret hos en brugers browser?" .. ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.