Denkfout javascript ?

Status
Niet open voor verdere reacties.

rob57

Gebruiker
Lid geworden
5 jul 2004
Berichten
31
Hallo,

Ik heb een javascript voor een simple menu, nu heb ik mijn website opgebouwd met frames, benoemd met "boven", "links" en "rechts"

Het javascript staat in het linkerframe. Nu is het de bedoeling dat hij de opgeroepen pagina "rechts" weer geeft, maar hij opent in een nieuw scherm. Onderstaande regel is de regel die ik gebruik(te) in html:

html
--------------------
<a href="keers/index.htm" target="hoofd">
---------------------

Hierbij wordt het rechter scherm gebruikt, maar hieronder het stukje van het javascript waarbij de nieuwe pagina wordt geopend.

java
-------------------------
<option value="http://www.mijnsite.nl.nl/keers" target="hoofd" >tekst
--------------------------

Ik maak ergens een denk fout, maar waar. Hieronder het stukje script compleet.

java
---------------------------------
<!-- verander hieronder het lettertype, grootte, kleurnummers om he menu aan te passen -->
<form>
<p align="center"><select style="font-family: MS Sans Serif, Arial, Helvetica; font-size: 10pt; color: #9999FF; background-color: #663366" onchange="goSelect(this)" size="1" name="m">
<!-- verander hieronder de target van de links en wat er als begintekst moet worden weergegeven-->
<option value="#" target="new">Menu
<option value="http://www.mijnsite.nl/test/" target="_blank" >test



</option>
</select></form>
<!-- verander hierboven de url's en de linknamen -->
------------------------------------


Alvast hartelijk dank voor het meedenken en excuses voor het 'ongemak'.
 
Hoi,

Aan de links geef je een target mee, de naam van het frame waarin je de pagina wilt openen.

In html opent de link zich in het frame met de naam 'hoofd'.

In je javascript zal je bij target dus 'rechts' in moeten vullen?

Een link wordt in een nieuw venster geopend als je als target 'new' of '_blank' meegeeft.

Succes :)
 
Hallo Japie,

Dat had ik ook al geprobeert, maar dat werkt ook niet.

Als je wilt, kan je het nakijken op [ www.rob-hubert.nl/even ]

Als je op menu klikt en dan test, dan wordt het scherm in een nieuw scherm geopent. Als iets naar beneden gaat en op "keers" klikt, dan wordt wel het rechterscherm gebruikt (staat alleen nog niet goed ingesteld).

Ik hoop dat je het nog kan bevatten, maar in ieder geval alvast bedankt. :(
 
Je moet de frame naam in je script opnemen.

<script language=JavaScript>
<!--
function goSelect(daform) {
with(daform) {
parent.frames['hoofd'].location=options[selectedIndex].value; // jump to that option's value
}
}
//-->
</SCRIPT>


Bij de linken zelf hoef je dan niks te zetten.

:cool:
 
Hallo Peter,

Hartelijk dank voor de oplossing. Het werkt nu, alleen :o heb ik nog een vraag, ik heb drie links die wel op een nieuwe pagina geopend moeten worden. Is dit nog ergens op te lossen?

Alvast hartelijk dank.
 
2x hetzelfde script opnemen.

PHP:
<script language=Javascript> 
<!-- 
function goSelect(daform) { 
with(daform) { 
parent.frames['hoofd'].location=options[selectedIndex].value; // jump to that option's value 
} 
} 
//--> 
</script>

<script language=JavaScript>
<!--
function goSelect2(daform) {
with(daform) {
top.window.location=options[selectedIndex].value;       // jump to that option's value
}
}
//-->
</SCRIPT>
<table  width="80%" border="1" cellspacing="1" cellpadding="1" bordercolor="#800040">
	<tr>
		<!-- Row 1 Column 1 -->
		<td  width="40%" valign="top">
		<center>	Eerste menu<br>
opent in Hoofd</center><br>

<!-- verander hieronder het lettertype, grootte, kleurnummers om he menu aan te passen  -->
<form>
  <p align="center"><select style="font-family: MS Sans Serif, Arial, Helvetica; font-size: 10pt; color: #9999FF; background-color: #663366" onchange="goSelect(this)" size="1" name="m">
<!-- verander hieronder de target van de links en wat er als begintekst moet worden weergegeven--> 

<option value="http://www.rob-hubert.nl/keers" >keers test</option>
<option value="http://www.htmlforums.com" >forum test</option>
<option value="http://www.zeelandnet.nl" >zeeland test</option>
</select></form>
<!-- verander hierboven de url's en de linknamen -->

		</td>
		<!-- Row 1 Column 2 -->
		<td  width="40%" valign="top">
		<center>Tweede menu<br>
opent nieuw venster</center><br>

<form>
  <p align="center"><select style="font-family: MS Sans Serif, Arial, Helvetica; font-size: 10pt; color: #9999FF; background-color: #663366" onchange="goSelect2(this)" size="1" name="m2">
<!-- verander hieronder de target van de links en wat er als begintekst moet worden weergegeven--> 

<option value="http://www.rob-hubert.nl/keers" target="hoofd">keers test</option>
<option value="http://www.htmlforums.com" >forum test</option>
<option value="http://www.zeelandnet.nl" >zeelandtest</option>
</select></form>
<!-- verander hierboven de url's en de linknamen -->

		</td>
	</tr>
</table>
  
<br>

:cool:
 
Beste Peter,

Hartelijk dank voor het aanpassen van het script. Het werkt uitstekend. Komt echter wel de volgende (en hopelijk de laatste) vraag :o

Is het mogelijk om de menu's onder elkaar te krijgen. Op dit moment wordt mijn linker frame erg breed en wordt de leesruimte voor mijn rechterframe af.

Mocht dit niet lukken dan ga ik kijken hoe ik het dan kan oplossen.

Nogmaals mijn hartelijke dank en het geduld, excuses voor mijn onwetendheid.
 
<table width="80%" veranderen in 50%

en hier de tr's toevoegen.

</td>
</tr><tr>
<!-- Row 1 Column 2 -->
<td width="40%" valign="top">
<center>Tweede menu<br>


Er zit nog een function goSelect in de head, deze mag weg, je hebt er nu drie.

:cool:
 
Beste Peter,

Perfect, het werkt nu als een trein :thumb: . Hartelijk dank voor de hulp en het geduld. Toch noch één klein vraagje:

Wat is de regel als je een lijn in het menu wilt opnemen, om een onderscheid te maken tussen bepaalde items?

Als dat nog mogelijk is, dan is het helemaal top.
 
Hallo,

Dit brengt wel een lijn, maar wat ik zou willen is om een lijn te zetten tussen de verschillende items in het rolmenu.

Bijv.

Java
--------------------------------------
<option value="http://www.rob-hubert.nl/aberson" >Genealogie Aberson</option>
<option value="http://www.rob-hubert.nl/brederode" >Genealogie van Brederode</option>
---------------------------------------
hier een lijn

Java
-----------------------------------------
<option value="http://www.rob-hubert.nl/legacy" >Legacy Genealogie Software</option>
<option value="http://www.rob-hubert.nl/paf" >PAF Genealogie Software</option>
------------------------------------------

En dan zou dus "hier een lijn" vertaald moeten worden in een lijn. Bij <hr> wordt er wel een lijn geplaatst, maar dan niet in het scroll menu.


Is hier een andere oplossing voor? Alvast bedankt.
 
Hallo,

Ik heb het probleem met de lijn opgelost door de volgende string te gebruiken:

<option value="#">============</option>

Nu staat er een streep tussen de verschillende items.

Voor iedereen die mij geholpen heeft, hartelijk dank.
:thumb:
 
Goedemiddag,

Volgens mij bedoel je een optgroup..
Hiermee groupeer je een aantal opties in je dropdown boxje (select-menu).

Voorbeeld:
PHP:
<SELECT ..>

<OPTGROUP ..>
<OPTION> </OPTION>
</OPTGROUP>

<OPTGROUP ..>
<OPTION> </OPTION>
</OPTGROUP>

</SELECT>

Succes :)
 
Japie,

Het kan zijn, maar dat zijn teveel "termen". Ik vond het mooier staan om een ===== ertussen te zetten zodat het een beetje gescheiden werd. Mochten er andere mogelijkheden zijn, dan sta ik daar altijd voor open. :D
 
Geplaatst door rob57
Japie,

Het kan zijn, maar dat zijn teveel "termen".

De enige nieuwe term is "optgroup".

Met deze optgroup (staat waarschijnlijk voor option-group?) maak je dus groepjes van je opties.

Deze optgroup kan je een titel geven, als je dat niet doet worden de groepjes gescheiden door een lege regel.

vb:
formulieren-vb01.gif


Je hoeft dus alleen <optgroup> boven de eerste option van een groepje te zetten en een </optgroup> onder de laatste optie van een groepje.

Is het nog te volgen? :D
 
Het is me helemaal duidelijk. Ik heb er dan ook dankbaar gebruik van gemaakt. Toch loopt het nog niet zoals ik zou willen en het "probleem" zit hem denk ik in deze regel:

<option value="#" selected><http://www.rob-hubert.nl/rechts">Menu</option>


Wanneer ik eerst op bijv. Links klik dan krijg ik keurig in het rechterframe de links te zien. Wanneer ik echter weer op Menu klik, dan wordt op in het rechterframe dezelfde twee dropdown boxjes getoont. Ik zou dit graag anders zien (zoals in de boven gegeven regel) dat het rechterframe weer gevuld wordt met "rechts"

Is het nu nog te volgen? Hieronder zet ik nog even het stukje script.

java
-------------------------------
<form>
<p align="center"><select style="font-family: MS Sans Serif, Arial, Helvetica; font-size: 10pt; color: #FFFFFF; background-color: #663366" onchange="goSelect(this)" size="1" name="m">
<!-- verander hieronder de target van de links en wat er als begintekst moet worden weergegeven-->


<option value="#" selected><http://www.rob-hubert.nl/rechts">Menu</option>
<optgroup>
<option value="http://www.rob-hubert.nl/aberson" >Genealogie Aberson</option>
<option value="http://www.rob-hubert.nl/brederode" >Genealogie van Brederode</option>
<option value="http://www.rob-hubert.nl/heijboer" >Genealogie Heijboer</option>
<option value="http://www.rob-hubert.nl/keers" >Genealogie Keers</option>
<option value="http://www.rob-hubert.nl/teding" >Genealogie Teding van Berkhout</option>
</optgroup>
<optgroup>
<option value="http://www.rob-hubert.nl/anders" >Links
</optgroup>
<optgroup>
<option value="http://www.rob-hubert.nl/php/reactie_rob" >Contact
</optgroup>

----------------------------------------

Verder loopt het perfect. Ik heb even een testpagina neergezet op www.rob-hubert.nl/even
 
In plaats van het hekje (#) moet er de link staan naar de pagina die je wil laten zien, dus 'rechts'.

Dan kan je de link tussen de haakjes erachter weglaten:

PHP:
<option value="http://www.rob-hubert.nl/rechts" selected>Menu</option>

:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan