Dropdown över frames
11 svar · 657 visningar · startad av Gustav
Vanliga dropdown-lister är det ju inga problem med, de syns även om ramen är för liten. Men det funkar inte att lägga lager över frames.
http://www.webforum.nu/showthread.php?s=&postid=106908#post106908
Ok, illa!
Men...hur gör jag då med dom vanliga dropdown-menyerna?
Jag vill inte ha den där fula gråa fyrkanten med en liten pil i mitten som sitter längst till höger på varje meny.
Går den att ta bort kanske?
Tack!
Jag har inte testat något själv, men de här trådarna kanske kan hjälpa dig? :)
http://www.webforum.nu/showthread.php?s=&threadid=1049
http://www.webforum.nu/showthread.php?s=&threadid=873
Förresten...när man väljer ett alternativ i en sån där meny så "fastnar" ju det alternativet högst upp. Det är ju inte så roligt...jag vill ju alltid ha "överskriften" (selected) i rutan på menyn när den inte är utfälld.
Det måste väl ändå gå att fixa va?
Det är så select-menyer fungerar. Men du kan koperia värdet till ett gömt fält och använda det. Sedan nollställer du menyn.
<form>
<select name="foo" onChange="this.form.bar.value=this[this.selectedIndex].value; this.selectedIndex=0;">
<option>Detta visas hela tiden</option>
<option value="Val 1">Val 1</option>
<option value="Val 2">Val 2</option>
<option value="Val 3">Val 3</option>
</select>
<input type="hidden" name="bar">
</form>
Så här ser det ut:
<head>
<script language=JavaScript type="text/javascript">
<!--
function en(form,callingField)
{
parent.frames[1].location.href=form.till.options[form.till.selectedIndex].value
}
// -->
</script>
</head>
Sen så kommer det 8 stycken menyboxar, men jag väljer bara en...
<form action="*">
<select name="till" STYLE="background:#0075FF; width: 100; border-style:1px; font-size: 10; color: white; font-family: Tahoma;" onChange="en(this.form, this.name);" onChange="this.form.bar.value=this[this.selectedIndex].value; this.selectedIndex=0;">
<option><b>- Övrigt -</b>
<option>
<option value="http://www.mariterm.se"><b>start</b>
<option value="info.html">allmän information
<option value="kontakt.html">kontakta oss
<option>
<option value="http://www.mariterm.se/english/">in english
<option>
</select>
<input type="hidden" name="bar">
</form>
Har jag gjort rätt då eller är jag helt ute och cyklar...antagligen är jag det eftersom det inte funkar! :(
Trevlig helg på er alla! :)
Hoppla...
Vi kan börja med att skippa script-blocket. Det känns onödigt. Sedan har du 2 onChange-event i <select>-taggen, endast 1 är tillåtet. Hidden-fältet är i detta exempel onödigt (eftersom det inte används) och action="*" kan du också skippa (det finns ingen resurs vid namnet "*" ändå. Kvar blir alltså;
<form>
<select name="till" style="background:#0075FF; width: 100px; border:1px; font-size: 10; color: white; font-family: Tahoma;" onChange="if(this[this.selectedIndex].value){ parent.frames[1].location.href=this[this.selectedIndex].value; } this.selectedIndex=0;">
<option value="">- Övrigt -</option>
<option value="">&nbsp;</option>
<option value="http://www.mariterm.se">start</option>
<option value="info.html">allmän information</option>
<option value="kontakt.html">kontakta oss</option>
<option value="">&nbsp;</option>
<option value="http://www.mariterm.se/english/">in english</option>
</select>
</form>
Om jag tolkat ditt exempel rätt.
Hur menar du med "över" frames?
Att få menyn att visa sig i en annan frame är inga större problem.
Nu verkar det ju ha löst sig men hör av dig om du vill testa.
Edit:
- - - - -
Det går att få ett lager att lägga sig ÖVER själva frame kanten i IE 5.5+
Dock bara i IE
- - - - -
Du kan öppna ett ramlöstfönster så att det lägger sig över en frames-kant, och du kan från en frame kontrollera ett lager i en annan frame, men du kan inte få ett och samma lager att visas över 2 frames. Har du sett något sådannt vill jag gärna se exempel på det.