Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Onclick med MsgBox og Safari

8 views
Skip to first unread message

Jens

unread,
Nov 17, 2015, 7:28:47 AM11/17/15
to
Hej/

Jeg en hjemmeside, hvor man 2 steder kan få hjælp ved at klikke på en knap.
<input type="button" onclick="javascript:help1()" value="Klik for hjælp" />

Oppe i min header har jeg Følgende subrutiner liggende

<head>
....
<script type="text/vbscript">
sub help1()
MsgBox "Blabla!",,"Hvorfor skal man svare ja eller nej?"
end sub
sub help2()
MsgBox "bla",,"Hvorfor skal man svare ja eller nej"
end sub
</script>
..
</head>

Det virker perfekt i IE, hvor hjælpeteksten fint dukker op, når man klikker på knappen.
Men i Safari og måske også Crome, sker der ikke noget. Der er ingen fejlmeddelelse, men browseren reagerer ikke på klikket.

Kan nogen se hvad jeg gør galt?

mvh.
/jens

Jens

unread,
Nov 17, 2015, 7:47:08 AM11/17/15
to
her er linket til siden med de 2 hjælpeknapper: http://vinvenner.dk/anmeldelse.asp

Dennis Munding

unread,
Nov 17, 2015, 4:19:13 PM11/17/15
to
Jens wrote:


Iflg. FireBug (FF plugin), er hverken help1 eller help2 defineret.

Og dit link til hjælp ved glemt brugernavn/kodeord giver flg.
fejlmelding:
document.getElementById(...) is null.



Med venlig hilsen
--
Dennis Munding
a.k.a. The Eye-PG-
Proud Member of The PosseGrim Squad
"When you hear the wind, you're already dead..."

Jens

unread,
Nov 17, 2015, 5:40:03 PM11/17/15
to
Den tirsdag den 17. november 2015 kl. 13.28.47 UTC+1 skrev Jens:
Hej Dennis/

Tak for svaret.

Det med documentgetElementbyId var ganske rigtig en fejl. Godt fanget. Det er nu rettet. Tak for påpegningen.

Det med at subrutinenavnene help1 og help2 ikke er definerede forstår jeg ikke. De var ganske vist ikke erklæret som variabelnavne - men det er de nu. jeg koder i asp, så nu har jeg tilføjet
dim help1, help2

Men der kommer stadigvæk ikke et hjælpebillede op når Safari benyttes.

Men jeg misforstår måske hvad du/FireBug mener med "defineret"?

Dennis Munding

unread,
Nov 18, 2015, 5:03:14 AM11/18/15
to
Jens wrote:

>
> Hej Dennis/
>
> Tak for svaret.
>
> Det med documentgetElementbyId var ganske rigtig en fejl. Godt
> fanget. Det er nu rettet. Tak for påpegningen.
>
> Det med at subrutinenavnene help1 og help2 ikke er definerede forstår
> jeg ikke. De var ganske vist ikke erklæret som variabelnavne - men
> det er de nu. jeg koder i asp, så nu har jeg tilføjet dim help1, help2
>
> Men der kommer stadigvæk ikke et hjælpebillede op når Safari benyttes.
>
> Men jeg misforstår måske hvad du/FireBug mener med "defineret"?


Lige et par "detaljer"...

Jeg er på ingen måde ekspert i javascript og jeg har så at sige ingen
kendskab til asp, selv om jeg har kigget lidt på denne herres
tutorials: https://www.youtube.com/user/kudvenkat/playlists

Han snakker engelsk med indisk dialekt, så kan godt være lidt svær at
forstå til tider, men ellers synes jeg, han er god til at forklare. :-)


Uden at vide, hvad du helt nøjagtig ønsker, der skal ske, når brugeren
klikker på "hjælp" (skal hjælpeteksten vises i et blok-element eller
som en alert?), så er det svært at skrive nøjagtig, hvordan du skal
deklarere dem.

Men jeg ville nok smide dem i en funktion, som så sørger for, at
teksten bliver vist i et blok-element.

Noget a la dette:

var MsgBox =
document.getElementById("id_på_element_hvor_teksten_skal_vises");

funktion help1() {
Msg.innerHTML = "Hjælpetekst her...";

}

I din html:

<div id="MsgBox"></div>


VIGTIGT!!:
Ovenstående virker kun, hvis du placerer scriptet nederst i din fil, da
DOM'en skal indlæses først.

Det kan gøres smartere både med alm. javascript og via jQuery, men da
jeg som nævnt ikke er ekspert på området, vil det kræve lidt mere tid
at "strikke" et eksempel sammen. :-)


PS: Ved ikke hvilken version af IE du benytter, men kan fortælle, at
dine funktionskald ikke virker i IE11... ;-)

Jan Hansen

unread,
Nov 18, 2015, 6:24:38 AM11/18/15
to
Den Tue, 17 Nov 2015 14:40:02 -0800 skrev Jens:

> ...
> Det med at subrutinenavnene help1 og help2 ikke er definerede forstår
> jeg ikke.

De er ikke defineret i JAVAscript.
Microsoft VBscript virker nu engang kun i Microsofts egne programmer!
Andet ville være i strid med Microsofts patenter.

Hvis andre skal kunne se hjælpeteksterne er det nu ikke så svært at
ændre til javascript, du kan rette:

<input type="button" onclick="javascript:help1();" value="Klik for hjælp" />

til

<input type="button" onclick='alert("Skriv hjælpetekst her");' value="Klik for hjælp" />

Hvis du vil have mere indflydelse på formatteringen, end en alert-boks
giver mulighed for, kan du skrive hjælpeteksten i en skjult div og
bruge knappen til at vise den, f.eks ved at rette knappen til:

<input type="button" onclick="document.getElementById('hjelp1').style.display = 'block';" value="Klik for hjælp">

sammen med noget i stil med

<div id="hjelp1" style="display:none; width:300px; position: relative; top: 50px; left: 200px; background-color:red;">
Skriv en hjælpetekst her
<br><input type="button" onclick="document.getElementById('hjelp1').style.display = 'none';" value="Klik her for at lukke hjælp">
</div>



Jens

unread,
Nov 18, 2015, 9:41:02 AM11/18/15
to
Super, jan, tak for det. Det virker. Ganske vist er en alert-box ikke så "køn" som en MSGBOX, men det kan jeg sagtens leve med.
mvh.
/Jens

Dennis Munding

unread,
Nov 18, 2015, 11:36:12 AM11/18/15
to
Den onsdag den 18. november 2015 kl. 15.41.02 UTC+1 skrev Jens:

> Super, jan, tak for det. Det virker. Ganske vist er en alert-box ikke så "køn" som en MSGBOX, men det kan jeg sagtens leve med.
> mvh.
> /Jens

Det er heller ikke videre "kønt" at lave en inline alert med så stort et tekstindhold.
Derfor jeg foreslog at lave en funktion til dine hjælpe-knapper...


Med venlig hilsen
0 new messages