Kan dit ook Opera-compatible?

Status
Niet open voor verdere reacties.

KwarK

Moderator
Lid geworden
10 mrt 2001
Berichten
7.078
Het gaat om dit script. Ik zou het graag eens willen proberen op m'n website maar ik hou alles daar graag Opera- (en als het even kan ook Mozilla-, Netscape- etc.) compatible. Is het in dit geval een kwestie van een kleine aanpassing of wordt dat lastig?
 
Vraagje tussendoor:

Kan een Moderator zijn bericht de hele tijd bovenaan zetten? (opnieuw)
 
Voorbeeld script:

<html>
  <head>
    <script language="javascript">

      function init()
      {
        var netscape = (navigator.userAgent.toUpperCase().indexOf("NETSCAPE") > -1) ? true : false;
        var opera = (navigator.userAgent.toUpperCase().indexOf("OPERA")  > -1) ? true : false;

        if (netscape) {
          location.href = "netscape.html";
          return;
        }

        if (opera) {
          location.href = "opera.html";
          return;
        }
        else
        {
          location.href = "microsoft.html";
        }
      }

    </script>
  </head>
  <body onload="init()">
  </body>
</html>

Heb dit script even in elkaar gedraaid, hiermee kan je de verschillende browser sturen.

:thumb:

-> toetje33,

Een moderator kan inderdaad een mededeling bovenaan zetten.

Groeten Wernand.
 
Dat is een goede workaround, maar ik zoek eigenlijk één enkel script wat hetzelfde doet als in het voorbeeld maar dat gewoon in de meeste browsers werkt. Is dat in dit geval mogelijk of wordt dat erg moeilijk?
 
Geplaatst door toetje33
Vraagje tussendoor:

Kan een Moderator zijn bericht de hele tijd bovenaan zetten? (opnieuw)

Mijn vorige opmerking is weggehaald?? Geen goede actie!! Regels zijn voor iedereen! :rolleyes:
Groetjes, Tanja

ps voor degenen die het niet gelezen hebben, het gaat over crossposten!:evil: En dit zal ook wel weer weggehaald worden. [edit] deze mod heeft eigen regels[/edit]
 
Laatst bewerkt:
Geplaatst door Tanja1968


[Offtopic]

Mijn vorige opmerking is weggehaald?? Geen goede actie!! Regels zijn voor iedereen! :rolleyes:
Groetjes, Tanja

ps voor degenen die het niet gelezen hebben, het gaat over crossposten!:evil: En dit zal ook wel weer weggehaald worden. [edit] deze mod heeft eigen regels[/edit]
en de mod die dit weg heeft gehaald ook

Of je nu weer bovenaan staat door je Functie of niet, het blijft een crosspost (of anders voordringen). Ik noem het misbruik maken van...en daar kan ik mij behoorlijk boos om maken [offtopic]
 
Laatst bewerkt:
Argh waar hebben jullie het over? Ik ben GEEN MOD in deze sectie en ik heb geen enkele mogelijkheid om topics "omhoog te halen".

Ik maak absoluut geen misbruik van mijn "macht" (die sowieso vrij beperkt is, ik zit alleen in Spellen) en ook al zou ik op de één of andere manier eigen topics extra kunnen laten voorkomen op het forum dan zou ik het tóch niet doen.

We (ja we!) zitten hier al jaren en een beetje respect is echt niet weg.

Ik zou nu graag willen dat er niet meer gezeurd wordt over macht en al die zooi, ik wil gewoon geholpen worden. Net zoals ik andersom gezien al velen uit de problemen gehaald heb.
 
Tanja1968:
Mijn vorige opmerking is weggehaald?? Geen goede actie!! Regels zijn voor iedereen!
<hr>
Reactie van Kwark:

Ik zou nu graag willen dat er niet meer gezeurd wordt over macht en al die zooi, ik wil gewoon geholpen worden. Net zoals ik andersom gezien al velen uit de problemen gehaald heb.
<hr>
Dit is ook de reden waarom ik je opmerkingen heb verwijderd. Uiteraard mogen moderators berichten verwijderen, daar zijn we beheerder voor. En discussies over rechten en wat wel en niet mag, zijn überhaupt geen reacties waar de vraagsteller op zit te wachten en zo werkt het ook niet op helpmij.nl. Dit forum en zeker deze sectie is bedoeld om programmeer technische problemen op te lossen en meer niet.

Kwark:

Dat is een goede workaround, maar ik zoek eigenlijk één enkel script wat hetzelfde doet als in het voorbeeld maar dat gewoon in de meeste browsers werkt. Is dat in dit geval mogelijk of wordt dat erg moeilijk?

Ik heb het script getest in de internet explorer, netscape en opera. En dit script werkt in allemaal, dus misschien bedoel je wat anders, leg het even verder uit.

Vr. Gr. Wernand.
 
Geplaatst door Wernand
Ik heb het script getest in de internet explorer, netscape en opera. En dit script werkt in allemaal, dus misschien bedoel je wat anders, leg het even verder uit.

Geen probleem, ik zal het op een andere manier uitleggen. Als je het voorbeeldscript even in Internet Explorer bekijkt, zul je zien dat er wanneer je op "Header 1" of "Header 2" klikt, een verborgen deel van de pagina tevoorschijn komt.

Open nu dezelfde pagina in Opera en je zult zien dat het script niet werkt. Toch zou ik graag op m'n website eenzelfde script installeren maar dan voor het menu op de mainpage: je klikt op de (bruinkleurige) header en het (groen gekleurde) menu klapt in / uit.

Nu hou ik, onder andere aangezien ik zelf Opera gebruik, m'n website graag compatible voor alle meestgebruikte browsers, dus naast Internet Explorer óók in ieder geval Opera, Mozilla en Netscape. Het voorbeeldscript werkt echter alleen goed in IE, vandaar mijn vraag: is er ook een dergelijk script te maken wat cross-browser compatible is, en zo ja hoe?
 
Hoi Kwark:

Het script wat je bij Dynamic Drive hebt gehaald vind ik persoonlijk een waardeloos script. Er zitten heel veel script fouten in. Dit script werkt in allemaal, heb ik even snel in elkaar gezet.


&lt;html&gt;
&nbsp;&nbsp;&lt;head&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&nbsp;language="javascript"&gt;

&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;Copyright&nbsp;2003,&nbsp;The&nbsp;Hoefsloot&nbsp;World
&nbsp;&nbsp;&nbsp;&nbsp;//
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;Dit&nbsp;script&nbsp;mag&nbsp;door&nbsp;iedereen
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worden&nbsp;gebruikt
&nbsp;&nbsp;&nbsp;&nbsp;//
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bezoek&nbsp;mijn&nbsp;site:
&nbsp;&nbsp;&nbsp;&nbsp;//
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.wernand.net
&nbsp;&nbsp;&nbsp;&nbsp;//
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Te&nbsp;gebruiken&nbsp;voor:
&nbsp;&nbsp;&nbsp;&nbsp;//
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opera&nbsp;7&nbsp;/&nbsp;Netscape&nbsp;6&nbsp;/&nbsp;IE5+

&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;openContent(c)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(c.id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"h1":

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(document.getElementById("span1").style)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visibility&nbsp;=&nbsp;(visibility&nbsp;==&nbsp;"hidden")&nbsp;?&nbsp;"visible"&nbsp;:&nbsp;"hidden";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"h2":

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(document.getElementById("span2").style)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visibility&nbsp;=&nbsp;(visibility&nbsp;==&nbsp;"hidden")&nbsp;?&nbsp;"visible"&nbsp;:&nbsp;"hidden";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;
&nbsp;&nbsp;&lt;/head&gt;
&nbsp;&nbsp;&lt;body&gt;

&nbsp;&nbsp;&nbsp;&nbsp;&lt;h3&nbsp;onmouseover="this.style.cursor&nbsp;=&nbsp;'hand'"&nbsp;onclick="openContent(this)"&nbsp;id="h1"&gt;Voorbeeld&nbsp;1&lt;/h3&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&nbsp;id="span1"&nbsp;style="visibility:&nbsp;hidden"&gt;Dit&nbsp;is&nbsp;de&nbsp;inhoud&nbsp;voor&nbsp;Voorbeeld&nbsp;1&lt;/span&gt;


&nbsp;&nbsp;&nbsp;&nbsp;&lt;h3&nbsp;onmouseover="this.style.cursor&nbsp;=&nbsp;'hand'"&nbsp;onclick="openContent(this)"&nbsp;id="h2"&gt;Voorbeeld&nbsp;2&lt;/h3&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&nbsp;id="span2"&nbsp;style="visibility:&nbsp;hidden"&gt;Dit&nbsp;is&nbsp;de&nbsp;inhoud&nbsp;voor&nbsp;Voorbeeld&nbsp;2&lt;/span&gt;

&nbsp;&nbsp;&lt;/body&gt;
&lt;/script&gt;

Groetjes Wernand.
:thumb:
 
Een beetje uitleggen

Ik zal toch even wat uitleg geven over dit script.

Allereerst zie je binnen de html-tag &lt;h3&gt;&lt;/h3&gt; twee javascript events. (Gebeurtenissen). Namelijk onmouseover en onclick.

Zo zijn er nog veel meer, onmouseover vuurt wanneer de muis over, in dit geval, het &lt;h3&gt;&lt;/h3&gt; element gaat.
En onclick als je op het element drukt met de muis.

Deze events kan je in bijna alle html-tags gebruiken.

this.style.cursor = is een Cascading style element waarmee je kan bepalen wat voor pictogram er gebruikt moet worden als de muis over het &lt;h3&gt;&lt;/h3&gt; element gaat.

De standaard cursor welke wordt gebruikt is default.
Wat voorbeelden:

style.cursor = .....

hand
help
move
pointer
text
wait
crosshair
* - resize waarbij de asterisk (*) kan staan voor

N, NE, NW, S, SE, SW, E en W. je ziet dit zijn dus
compass directions N = Noord, NE = Noord =Oost etc.

Nieuw welke in de IE6 zijn toegevoegd zijn:

all-sroll
col-resize
no-drop
not-allowed
progress
row-resize
url(uri)
vertical-text

Uitgebreide informatie hierover kan je lezen op:

http://msdn.microsoft.com/library/d.../author/dhtml/reference/properties/cursor.asp

onclick event:

In voorbeeld -> onclick="openContent(this)"

openContent is de naam van de javascript functie de de verdere afhandeling verzorgt.

Het sleutel woord "this":

this is een sleutelwoord die staat voor het beschikbaar stellen van zichzelf inclusief alle leden en onderdelen van het element waarvan uit de functie wordt aangeroepen. Oke ik weet het klink ingewikkeld.

Het &lt;h3> element bevat allerlei attributen waaronder het attribuut "id" zoals je kan zien in het voorbeeld. Doordat het sleutelwoord "this" als het ware alle attributen doorgeeft aan de functie waaronder het id- attribuut, kan de functie openContent daar direct gebruik van maken.

Voor een overzicht van al deze attributen van het &lt;h3> element welke dus via het sleutel woord "this" kan worden meegegeven kan je hier zien:

http://msdn.microsoft.com/library/d...html/Quick_Reference_for_Reader_Markup_25.asp

In ons voorbeeld kan je zien dat beide &lt;span> elementen standaard worden verborgen en pas door er op te clicken zichtbaar worden. Dit kan natuurlijk niet alleen met het &lt;span> element, nee dit kan met alle html elementen. Zo kan je dus bijvoorbeeld een &lt;img> element waarin een plaatje staat ook verbergen. als zo'n element verborgen is dan bestaat deze wel in het geheugen van de computer maar wordt deze niet gerenderd. Ik maak gebruik van het attribuut id om de elementen vanuit javascript te kunnen aanroepen.

Oke nu vertel ik nog wat over de javascript functie openContent zelf. (openContent is een naam die ik verzonnen heb, dit kan elke naam zijn die je zelf verzint)

Omdat we in het html-element het sleutel woord this hebben gebruikt, houdt het dus in dat de "c" in openContent(c) alle onderdelen van het element &lth3> bevat. Daarom is c een object. Via c kunnen we alle elementen aanroepen van het &lt;h3> element.

En dat doe ik dus ook.

switch (c.id)

Hiermee refereer ik aan het object c met als onderdeel id dit is dus het id nummer van het &lt;h3> element. Omdat ik 2 verschillende elementen heb die het zelfde moeten doen gebruik ik de instructie switch waarmee ik de mogelijkheid heb om onderscheidt te maken tussen het &lt;h3> en het tweede &lt;h3> element. Zo kan je natuurlijk nog veel meer switches gebruiken. In switch zie je staan "case" dit wil zeggen dat deze de verschillende mogelijke waardes van het attribuut id doorloopt. Let Op! Na elk Case moet een break staan om te voorkomen dat hij de volgende case gaat uitvoeren. case is niet meer en minder dan vergelijken of in dit geval "c.id" de waarde "h1" bevat zo ja, dan worden de instructies binnen de case afgehandeld. De volgende case "h2" wordt doorlopen als "c.id" geen "h1" waarde bevat. Bevat de "c.id" ook deze niet, dan wordt er niets gedaan.

Als je goed kijkt dan kan je zien dat c.id "h1" kan bevatten. Als we dan terug kijken in het &lt;h3> element dan kan je zien dat daar als id attribuut "h1" is opgegeven.

with statement:

Dit is een van mijn favorieten, want met dit statement kan je namelijk een path aanleggen naar een subonderdeel van een element. (Weer ingewikkeld). De instructie:

document.getElementById("") welke door alle 3 browser wordt ondersteund creerd een referentie naar in dit geval het attribuut style van het span1 of als tweede het span2 element.

Doordat we document.getElementById("") gebruiken kunnen we binnen de { } rechtstreeks de onderdelen aanspreken.

in ons voorbeeld :

with (document.getElementById("element").style)
{
Hier kan je alle mogelijke style settings aanpassen

visibility : hidden / visibile
}

dit kan ook:

document.getElementById("element").style.visibility = 'hidden' / visible

maar ook bijvoobeeld

document.getElementById("element").style.color = "#121212";

of

with (document.getElementById("element").style)
{
color = "#121212";
}

ander voorbeeld:

we hebben het element &ltimg id="img1"> gebruikt:

with (document.getElementById("img1"))
{
src = "a.jpg";
width = 100;
height = 100;
}

Ik denk dat het nu wel duidelijk is.

Boek Tip:

Javascript 1.5 "Het Complete Handboek" is een van de boeken die ik geleerd heb.

isbn: 9039516065 &euro; 67,50

http://www.nl.bol.com/is-bin/INTERS...0&Section=BOOK&lgl=1&plid=&lgl_BOL_OWNER_ID=1

Leuk boek om te leren.

<hr>
Hier kan je alle cursors zien die er zijn:

http://www.wernand.net/samples/cursor

Gr. Wernand
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan