Ga naar inhoud

dropdown en java..hoe verder?


Aanbevolen berichten

Hallo allemaal. Ik ben bezig met een mooi, maar simpel dropdown menuutje te maken. (Net zo als in dit venster de keuze voor lettekleur en letter grootte). De " kop " van een zo'n menuutje ( het zijn er totaal acht) is bv talen en dan komen de verschillende talen te voorschijn. Nu lukt het me maar niet om de juiste link eronder te krijgen. De menuutjes staan in een topframe en de informatie moet in het ondergelegen bottomframe komen te staan. [color=darkred:7278697821]<FRAMESET ROWS="*,*"> <FRAME SRC="js-sel2b.htm" NAME="boven"> <FRAME SRC="js-sel2c.htm" NAME="onder"> </FRAMESET> [/color:7278697821]en [color=darkred:7278697821]<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> <!-- function openURI() { var control = document.forms[0].documentkeuze; if (control.options[control.selectedIndex].value != ' ') { parent.onder.location.href = control.options[control.selectedIndex].value; } } //--> </SCRIPT>[/color:7278697821]staan in de head van het top frame, [color=darkred:7278697821]<OPTION VALUE="http://www.handleidinghtml.nl/script.htm">Scripts</OPTION> <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> <!-- function openURI() { var control = document.forms[0].documentkeuze; if (control.options[control.selectedIndex].value != ' ') { location.href = control.options[control.selectedIndex].value; } } //--> </SCRIPT>[/color:7278697821] staat in de head van het nieuw te openen document ( dat een htm extensie heeft) tot slot staat dit: [color=darkred:7278697821]<FORM ACTION="geen_actie"> <SELECT NAME="documentkeuze" onchange="openURI()"> <OPTION VALUE=" " SELECTED>Kies document</OPTION> <OPTION VALUE="js-sel1b.htm">Document 1</OPTION> <OPTION VALUE="js-sel1c.htm">Document 2</OPTION> <OPTION VALUE="js-sel1d.htm">Document 3</OPTION> </SELECT>[/color:7278697821]in de body Iets doe ik fout, maar wat???? :( wie kan mij helpen
Link naar reactie
wijzig [color=darkred:b1aa828e7a]location.href = control.options[control.selectedIndex].value[/color:b1aa828e7a] in [color=darkred:b1aa828e7a]parent.frames['onder'].location.href = control.options[control.selectedIndex].value[/color:b1aa828e7a] [size=9:b1aa828e7a](tenminste, als ik je verhaal goed begrepen heb)[/size:b1aa828e7a]
Link naar reactie
Ik denk dat je een andere fout maakt: Als ik je post goed lees heb je ook een scriptje staan in het basisframe 'onder'. Dat kan nooit goed werken. Probeer het eens op de volgende manier: Maak 6 bestanden aan (let goed op de bestandsnamen, die heb ik wat aangepast): 1) [color=blue:28521a9793]index.htm[/color:28521a9793] (hierin komt de FRAMESET, [color=red:28521a9793]i.p.v.[/color:28521a9793] de BODY hè!) 2) [color=blue:28521a9793]js-sel1a.htm[/color:28521a9793] (dit is het bovenste menuframe 'boven') 3) [color=blue:28521a9793]js-sel1b.htm[/color:28521a9793] (dit is het onderste basisframe 'onder') 4) [color=blue:28521a9793]js-sel2a.htm[/color:28521a9793] (Dit is document 1) 5) [color=blue:28521a9793]js-sel2b.htm[/color:28521a9793] (Dit is document 2) 6) [color=blue:28521a9793]js-sel2c.htm[/color:28521a9793] (Dit is document 3) __________________________________________________________ 1) In [color=blue:28521a9793]index.htm[/color:28521a9793] komt de specificatie van de FRAMESET (let op de bestandsnamen, heb ik veranderd):[code:1:28521a9793]<FRAMESET ROWS="*,*"> <FRAME SRC="js-sel1a.htm" NAME="boven"> <FRAME SRC="js-sel1b.htm" NAME="onder"> </FRAMESET>[/code:1:28521a9793]2) In [color=blue:28521a9793]js-sel1a.htm[/color:28521a9793] komt in de HEADER je script[code:1:28521a9793]<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> <!-- function openURI() { var control = document.forms[0].documentkeuze; if (control.options[control.selectedIndex].value != ' ') { parent.onder.location.href = control.options[control.selectedIndex].value; } } //--> </SCRIPT>[/code:1:28521a9793]en in de BODY je FORM met de SELECTBOX (let op: ik heb de bestandsnamen veranderd):[code:1:28521a9793]<FORM ACTION="geen_actie"> <SELECT NAME="documentkeuze" onchange="openURI()"> <OPTION VALUE=" " SELECTED>Kies document</OPTION> <OPTION VALUE="js-sel2a.htm">Document 1</OPTION> <OPTION VALUE="js-sel2b.htm">Document 2</OPTION> <OPTION VALUE="js-sel2c.htm">Document 3</OPTION> </SELECT>[/code:1:28521a9793]3) De body van [color=blue:28521a9793]js-sel1b.htm[/color:28521a9793] laat je leeg 4) In de BODY van [color=blue:28521a9793]js-sel2a.htm[/color:28521a9793] zet je de inhoud van jouw document 1 5) In de BODY van [color=blue:28521a9793]js-sel2b.htm[/color:28521a9793] zet je de inhoud van jouw document 2 6) In de BODY van [color=blue:28521a9793]js-sel2c.htm[/color:28521a9793] zet je de inhoud van jouw document 3 Wat knippen en plakken en zou het moeten werken (als ik geen typfouten heb gemaakt). Ik heb het met opzet eenvoudig gehouden. Het principe is het belangrijkst. Frames in combinatie met JS is altijd effe klooien (zeg nooit Java tegen JavaScript, dan gaat iedereen gillen :) ).
Link naar reactie
helaas... de instructies van trudge netjes opgevolgd (...zelfs het geduld opgebracht om gewoon helemaal op nieuw te beginnen ipv te knoeien in bestaande dingetjes) maar nog geen resultaat. Waarschijnlijk is het iets heel simpels wat ik vergeet...maar ja... wat? :( (zal noooooooooooit meer java en javascript door elkaar gooien! )
Link naar reactie
Het is vreemd dat het niet werkt want ik heb het getest en bij mij werkt het wel, zoals ik het beschreven heb. Als je de moeite op kunt brengen: heb je gecheckt of alle bestandsnamen precies zo geschreven zijn als in de VALUE="" van de OPTIONS van de SELECT-box in het FORM in js-sel1a.htm? Een klein verschrijvinkje en de hele boel werkt niet meer.
Link naar reactie
zeker vreemd: nu ik het los van de site uitgeprobeerd heb werkt het wel, alleen zie ik dan het frame niet. Misschien maak ik het ook gewoon te moeilijk: de site bestaat uit topframe, left- en rightframe. En het rightframe wil ik bij het onderwerp cursussen gaan verdelen in een boven en onderframe en in dat bovenframe komt het dropdown menuutje. (kan je het nog volgen?). Afijn, tot zover alvast bedankt voor de hulp... ik blijf proberen !
Link naar reactie
OK, dan gebruik je een ietsje complexere FRAMESET, wat op zich net zo goed zou moeten werken. Je moet dan alleen 2 FRAMESET's nesten. Dat werkt op zich ook prima, alleen is het de eerste keren altijd altijd lastig om al die verschillende bestanden uit elkaar te houden. Probeer het eens zo (heel simpel): Vervang de FRAMESET in het bestand [color=blue:686252c01c]index.htm[/color:686252c01c] in zijn geheel door: [code:1:686252c01c]<FRAMESET COLS="25%, *"> <FRAME SRC="js-sel-links.htm" NAME="links"> <FRAMESET ROWS="*,*"> <FRAME SRC="js-sel1a.htm" NAME="boven"> <FRAME SRC="js-sel1b.htm" NAME="onder"> </FRAMESET> </FRAMESET>[/code:1:686252c01c]En maak een nieuw bestand aan met de naam [color=blue:686252c01c]js-sel-links.htm[/color:686252c01c]. Dan zou het moeten werken zoals je bedoelt. Probeer de bestanden eerst eens los van de totale website, zodat je kunt testen of het werkt en of je geen fouten hebt gemaakt. Als het principe werkt kun je hem integreren in je website. Als deze cluster onderdeel van je totale website is, moet misschien ook de naam van het basisbestand: [color=red:686252c01c]INDEX.HTM[/color:686252c01c] veranderd worden, omdat dat voor je hostingprovider altijd het beginpunt van je site moet zijn. Maar dat is allemaal vers twee. Eerst moet de boel werken. Als je het nog kunt opbrengen. En troost je, gewone stervelingen beginnen allemaal zo. Genieën krijgen het misschien aangewaaid, maar gewone mensen moeten er hard voor werken.
Link naar reactie
Ik heb je post nog eens gelezen en je wilt eigenlijk nog meer frames zie ik. Probeer eerst het bovenstaande eens. Misschien kan je dan zelf de volgende stap verzinnen. Onderstaande FRAMESET's geven weer een iets andere uitkomst: [code:1:4d5d961cff]<FRAMESET ROWS="*,*"> <FRAME SRC="js-sel1a.htm" NAME="boven"> <FRAMESET COLS="25%, *"> <FRAME SRC="js-sel-links.htm" NAME="links"> <FRAME SRC="js-sel1b.htm" NAME="onder"> </FRAMESET> </FRAMESET>[/code:1:4d5d961cff] Leuk hè, dat gehack? :)
Link naar reactie
Bedankt... je houdt me zo wel van de straat... :D (of doe'k dat zelf?).. Inmiddels is het met een dropdownmenuutje in een enkelvoudig frameset gelukt. Maar om 8 verschillende dropdowntjes naast en onder elkaar te krijgen (netjes in een tabel gerangschikt) lukt niet: ja ik krijg ze wel in de tabel in het bovenste frame maar dan werkt er maar een van de 8. De aanhouder wint...ik ga aan de slag met je laatste advies
Link naar reactie
Die meerdere SELECTBOXEN kunnen alleen maar werken als ze door het script aangesproken kunnen worden. Het script (zoals dat in het bovenste frame [color=blue:28c9fc6df8]js-sel1a.htm[/color:28c9fc6df8] staat) zit zo in elkaar dat hij maar één SELECTBOX kan aanspreken, nl. de BOX met de naam "documentkeuze". Zie de code in de funktie "openURI()" in je script.[code:1:28c9fc6df8]var control = document.forms[0].documentkeuze[/code:1:28c9fc6df8]Om meerdere SELECTBOXEN aan de praat te krijgen moet het script zodanig aangepast worden dat hij ze kan aanspreken bij hun naam of rangorde.
Link naar reactie
Om de meerdere SELECTBOXEN aan de praat te krijgen moet je een paar dingetjes in het bestand met het SCRIPT en de SELECTBOXEN ([color=blue:8103a9359e]js-sel1a.htm[/color:8103a9359e]) veranderen: 1) Het script vereenvoudigen we tot:[code:1:8103a9359e]<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> <!-- Hide for older browsers function openURI(control) { if (control.options[control.selectedIndex].value != ' ') { parent.onder.location.href = control.options control.selectedIndex].value; } } // Stop hiding --> </SCRIPT>[/code:1:8103a9359e]2) Van de SELECTBOXEN (zoveel als je maar wilt) kun je de namen weglaten. Je mag ze wel namen geven, maar dan moet elke BOX zijn eigen naam hebben. Twee BOXEN mogen niet hetzelfde heten. Maar in het script maken we niet langer gebruik van de naam van de BOX. In plaats daarvan gebruiken we het sleutelwoord THIS: Elke BOX heeft een ONCHANGE() eventhandler die reageert op het aanklikken van de optie door de gebruiker. Door die eventhandler voor elke BOX te definiëren als[code:1:8103a9359e]<SELECT ONCHANGE="openURI(this)"> [/code:1:8103a9359e]weet het script, zonder dat de BOX met naam en toenaam genoemd hoeft te worden, welke optie door de gebruiker geselecteerd is. Je vraagt je misschien af waarom BOXEN zonder naam wel mogen en BOXEN met gelijke namen niet. Dat lijkt toch op hetzelfde neer te komen? Achter de schermen geeft de browser alle elementen in de webpagina, dus ook de BOXEN, een uniek volgnummer. Zoals bijvoorbeeld "selectedIndex" in het script. Dat betreft de geselecteerde optie. Ik laat het verder aan jou over om alle bestanden, waarnaar de verschillende opties in de SELECTBOXEN verwijzen, te benamen en aan te maken. En dan kun je de patiënt wel weer dichtnaaien. Ik hebt het allemaal getest en het werkt als een tierelier. Is het leven niet verrukkelluk, beste Katrien? 8)
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...