Brian Emilius <msn@emilius.dk> writes:
> Jeg har fundet et javascript til at vise en lille menu, når man
> højreklikker. Jeg vil gerne modificere dette script så det kun virker
> på enkelte elementer på siden (eksempelvis nogle billeder eller noget
> tekst) og indholdet af menuen skal afhænge af den ting, man klikker på.
I IE5+ bestemmer man hvad der sker når man højreklikker med eventen
"contextmenu". Eksempel:
<body oncontextmenu="return false">
vil slå højrekliksmenuen fra på body-elementet.
> <!-- SCRIPT -->
>
> <HEAD>
Er dette hele din fil? For så mangler der en DOCTYPE-erklæring.
(og det er ikke nødvendigt at sende hele filen med her, det
er bedre at give et link til en "live" version).
> <style>
Skal være <style type="text/css">. Type-attributten er påkrævet.
> <!--
HTML-kommentarer er ikke nødvendige for at skjule script- eller
style-elementers indhold. Alle nuværende browsere kender de tags.
> <SCRIPT LANGUAGE="JavaScript1.2">
Skal være
<script type="text/javascript">
type-attributten er påkrævet. Language-attributten er "deprecated",
og hvis man alligevel bruger den, så skal man *ikke* bede om
Javascript version 1.2 (som er en version der er subtilt forskellig
fra tidligere og senere versioner på nogle få punkter, og som nogle
browsere skifter til at bruge når man beder om det ... men ikke IE)
....
> <script language="JavaScript1.2">
> if (document.all && window.print) {
Her testes for om man faktisk bruger IE. Det fejler bare, fordi der
også er andre browsere der understøtter document.all og window.print.
Enten ved du at din side kun bruges af folk der bruger IE5+, eller
også bør du lade være med den her slags scripts :)
> ie5menu.className = menuskin;
> document.oncontextmenu = showmenuie5;
Her kunne man så skrive
document.oncontextmenu = function() { return false; };
og
document.images[0].oncontextmenu = showmenuie5;
document.images[1].oncontextmenu = showmenuie5;
eller hvad man nu vil putte menuen på.
Dette skal dog stå *senere* på siden end de elementer menuen skal på
(eller pakkes ind i en funktion der kaldes når siden er loadet færdig);
....
> <img src="etandetbillede.gif" />
Skriver du HTML eller XHTML?
Jeg antager at du skriver til et miljø, fx et firmas intranet, hvor alle
skal bruge IE5 til at tilgå siden. Ellers laver du en menu der kun kan
bruges af nogel af brugerne, og det betyder sikkert at andre vil mangle
den funktionalitet.
(Nogle folk kan ikke lide sider der piller ved deres browsers navigation.
Jeg er selv en af dem, men har ingen skrupler ved at fortælle hvordan man
gør det i IE. Jo flere sider der er af den slags, jo flere skifter nok
til en browser der ikke lader fremmede sider bestemme over den slags :)
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'