Avatar billede maron Nybegynder
13. august 2007 - 14:47 Der er 50 kommentarer og
1 løsning

Tjek om java-script er aktiveret

Kan man tjekke om java-script er aktiveret hos en brugers browser?

If javascript = true then
else
response.redirect("farvel.asp")
end if
Avatar billede olebole Juniormester
13. august 2007 - 16:14 #1
<ole>

Nej, det kan du ikke checke på serveren. Hvis JavaScript fungerer, er det slået til  =)

/mvh
</bole>
Avatar billede maron Nybegynder
13. august 2007 - 16:45 #2
Det var faktisk heller ikke på serveren, men hos klienten.

Jeg har forsøgt med:

<noscript><meta http-equiv="refresh" content="0;url=./noscript.html"></noscript>

Det virker umiddelbart, men er det den bedste måde og vil det virke i alle browser?
Avatar billede kongknabe Nybegynder
13. august 2007 - 17:14 #3
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 :-)
Avatar billede maron Nybegynder
13. august 2007 - 17:31 #4
Skal man bruge meta refresh?
<noscript><meta content="0;url=./noscript.html"></noscript>

eller hvad med at smide noget ASP ind efter <noscript>
<noscript><% response.redirect("noscript.asp") %><noscript>
Avatar billede olebole Juniormester
13. august 2007 - 18:00 #5
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:

<script type="text/JavaScript">
    location.href = "side_med_javascript.html";
</script>
Avatar billede maron Nybegynder
13. august 2007 - 18:22 #6
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?

<script type="text/JavaScript">
    javascript = true
</script>

If javascript = true then
else
response.redirect("farvel.asp")
end if
Avatar billede kongknabe Nybegynder
13. august 2007 - 19:16 #7
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)
Avatar billede maron Nybegynder
13. august 2007 - 19:31 #8
Ganske kort, kan java-script sætte en værdi?
Avatar billede olebole Juniormester
13. august 2007 - 21:03 #9
Når JavaScript kører, har dokumentet jo forladt serveren. Så kan ASP ikke længere nå det.
Nej, JS kan ikke sætte en værdi, ASP efterfølgende kan læse
Avatar billede maron Nybegynder
13. august 2007 - 21:09 #10
Nå.:(
Et sidste spørgsmål i denne tråd. Burde den her så ikke være ok?

<noscript>
    location.href = "ingenscript.html";
</noscript>
Avatar billede olebole Juniormester
13. august 2007 - 22:52 #11
Tager du gas på os?  =)
Avatar billede maron Nybegynder
13. august 2007 - 22:58 #12
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.

Men ellers er det vel lukketid.
Avatar billede kongknabe Nybegynder
13. august 2007 - 22:59 #13
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 ;-)
Avatar billede kongknabe Nybegynder
13. august 2007 - 23:01 #14
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!? :-)
Avatar billede maron Nybegynder
13. august 2007 - 23:04 #15
kongknabe >> du har naturligvis helt ret :O)
Avatar billede maron Nybegynder
13. august 2007 - 23:07 #16
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?
Avatar billede kongknabe Nybegynder
13. august 2007 - 23:22 #17
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 :-))
Avatar billede thesurfer Nybegynder
13. august 2007 - 23:31 #18
Løsningen er jo følgende:

Filen JavaScriptTest.asp (eller .htm):

<html>
<head>
<title>javascript test</title>
<meta http-equiv="refresh" content="2;url=javascript.asp?js=nej">
</head>
<body>

tester lige javascript

<script type="text/JavaSript">
window.location.href="javascript.asp?js=ja";
</script>

Filen javascript.asp:

<%
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..
Avatar billede thesurfer Nybegynder
13. august 2007 - 23:34 #19
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

.. sammen med

<script type="text/JavaSript">
window.location.href="javascript.asp?js=ja";
</script>
Avatar billede thesurfer Nybegynder
13. august 2007 - 23:40 #20
.. HTML koden fra 13/08-2007 23:31:38 skal naturligvis afsluttes med "</body></html>".. :-)
Avatar billede thesurfer Nybegynder
13. august 2007 - 23:43 #21
Angående "Ganske kort, kan java-script sætte en værdi?":

Ikke direkte.. som olebole skriver, er det afviklingen "overstået", når man når til JavaScript (klienten) delen..

Men man kan dog "kontakte" ASP, ved at sende nogle parametere med i urlen..

Eksempel:

<script type="text/JavaSript">
window.location.href="side.asp?navn=hans";
</script>

og ASP filen:

<%
dim navn
navn = request.querystring("navn")
if navn <> "" then response.write "Hej " & navn
%>

Hvilket så udskriver: Hej hans
Avatar billede maron Nybegynder
13. august 2007 - 23:52 #22
Tak thesurfer >> der er en del at kigge på:) bliver nok først i morgen... sengetid her.

23.22.02
disable printscreen button- >> thesurfer, måske ved du også om den holder vand?

<script language="JavaScript" type="text/JavaScript">
<!--
document.attachEvent("onkeydown", my_onkeydown_handler);

function my_onkeydown_handler(){
               
  switch (event.keyCode)
  {
    case 122 : // 'F11' 'Printscreen'
    event.returnValue = false;
    event.keyCode = 0;
    break;           
  }
}
//-->
</script>
Avatar billede olebole Juniormester
13. august 2007 - 23:56 #23
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)
Avatar billede olebole Juniormester
13. august 2007 - 23:58 #24
java script:document.onkeydown=function(){};void(0)

- i adresselinjen tager sig af dit script, thesurfer  =)
Avatar billede olebole Juniormester
13. august 2007 - 23:59 #25
... sorry ... det var til maron
Avatar billede olebole Juniormester
14. august 2007 - 00:01 #26
- og så virkede dit script jo iøvrigt slet ikke i browsere, der overholder W3C's DOM på dette punkt ... Firefox, f.eks.  ;o)
Avatar billede maron Nybegynder
14. august 2007 - 00:02 #27
Ok. Men nu streamer jeg alle filer, hvilket gør at intet bliver caches og vis kilde er deaktiveret i browseren, (ved ikke om du kan omgås dette?).

Dertil har jeg skreves en xml-fil i default, som blokerer "gem som". igen ved jeg ikke om dette kan omgås.?

Men Ole, du har muligvis ret??
Avatar billede olebole Juniormester
14. august 2007 - 00:03 #28
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
Avatar billede thesurfer Nybegynder
14. august 2007 - 00:03 #29
maron> Du kan ikke sikre dig mod PrintScreen.

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"..

:-)
Avatar billede thesurfer Nybegynder
14. august 2007 - 00:06 #30
maron> Generelt:

Hvis brugeren kan se/læse noget, kan brugeren også gemme det.

Selv om du har valgt at streame f.eks. video eller lyd, kan man sagtens gemme videoen/lyden.

Der findes software der læser streamen på normalvis, og derefter gemmer det der er streamet..


Konklusion:
Hvis noget ikke må gemmes, skal det ikke lægges på nettet. Det er den eneste udvej.
Avatar billede olebole Juniormester
14. august 2007 - 00:06 #31
Læs også denne artikel om JavaScript i adresselinjen:
    http://www.dengodekode.dk/bm_artikel.html

Det er som at stjæle bolsjer fra småbørn (still no offence)
Avatar billede maron Nybegynder
14. august 2007 - 00:07 #32
Sørgeligt, at man ikke kan sikre sig på det punkt, vel en elendig programmering fra microsoft og mozilla i øvrigt vel.
Avatar billede thesurfer Nybegynder
14. august 2007 - 00:08 #33
maron> Nej, det er ikke elendig programmering.. :-)

Sådan er det bare.. og i alle browsere..
Avatar billede olebole Juniormester
14. august 2007 - 00:08 #34
Nej, en enorm uvidenhed fra din side
Avatar billede thesurfer Nybegynder
14. august 2007 - 00:13 #35
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.
Avatar billede maron Nybegynder
14. august 2007 - 00:16 #36
Ole >> muligvis er jeg uviden, men du behøver ikke antyde det på den måde.
thesurfer >> tak. for et velformuleret svar.
Avatar billede kongknabe Nybegynder
14. august 2007 - 00:19 #37
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)
Avatar billede thesurfer Nybegynder
14. august 2007 - 00:26 #38
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.. :-)
Avatar billede olebole Juniormester
14. august 2007 - 00:51 #39
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)
Avatar billede kongknabe Nybegynder
14. august 2007 - 01:12 #40
Forskellen er den at du ved bedre! ;-)
Avatar billede olebole Juniormester
14. august 2007 - 01:24 #41
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)
Avatar billede olebole Juniormester
14. august 2007 - 01:28 #42
- 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  :)
Avatar billede kongknabe Nybegynder
14. august 2007 - 01:33 #43
Lad os det :-)
Avatar billede olebole Juniormester
15. august 2007 - 14:12 #44
Hvad siger maron? Er spørgsmålet blevet tilstrækkeligt uddybet, så det skal lukkes?
Avatar billede maron Nybegynder
15. august 2007 - 14:33 #45
Fint. vi lukker her.
Avatar billede thesurfer Nybegynder
15. august 2007 - 19:35 #46
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?" .. ?
Avatar billede olebole Juniormester
16. august 2007 - 04:31 #47
Gerne  ;o)
Avatar billede thesurfer Nybegynder
27. august 2007 - 22:49 #48
maron> Er du der?
Avatar billede maron Nybegynder
28. august 2007 - 00:28 #49
thesurfer >> svar = point.
Avatar billede thesurfer Nybegynder
28. august 2007 - 00:42 #50
Svar :-)
Avatar billede maron Nybegynder
28. august 2007 - 09:36 #51
Points
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester