PalleMedlem sedan apr. 20002 716 inlägg
Hmm.. jag avskyr frames, dock måste jag använda det denna gång eftersom kunden inte vill ändra nått i grundstrukturen på sidan.
Jag får det inte att fungera så som jag vill i alla webbläsare..
- Det fungerar bra i IE och Moz, men i Opera och Netscape kan man inte navigera vidare.
Det knepiga är att jag är i behov att skjuta ihop 2 kolumner vid ett tillfälle, detta för att få plats med en speciell sida.
Är värdena url2 och target2 tomma i funktionen skall content vara över hela content_frameset-framen, är det inte tomt skall det vara som vanligt.
Mina länkar ser ut enligt följande:
[red]<a href="#" onclick="getUrl('main.asp','content','news.asp','s_right');"> Som vanligt.. </a>
<a href="#" onclick="getUrl('spec.asp','content','','');"> Över hela framen.. </a>
...
osv[/red]
Och funktionen ser ut så här:
[red]function getUrl(url1,target1,url2,target2) {
if(url1.length>0){
parent.document.getElementById("content_frameset").cols="582,*";
parent.document.getElementById(target1).src=url1;
}
if(url2.length>0){
parent.document.getElementById("content_frameset").cols="582,*";
parent.document.getElementById(target2).src=url2;
} else {
parent.document.getElementById("content_frameset").cols="763,0";
parent.document.getElementById(target1).src=url1;
}
}[/red]
Själva framesettet ser ut enligt bifogad bild:
Någon som kan ge mig lite tips på andra sätt att lösa detta på, alt. vad som behövs ändras i den befintliga koden för att detta även skall fungera i Netscape och Opera. (kunden kräver det)
Peter SMedlem sedan dec. 20025 484 inlägg
Sätt "name"-attributet på ramen med id content_frameset till det samma och testa följande:
<script type="text/javascript">
<!--
function getURL(){
var a=arguments;
switch(a.length){
case 4:
parent.frames["content_frameset"].cols="582,*";
parent.frames[a[1]].location.href=a[0];
parent.frames[a[3]].location.href=a[2];
break;
case 2:
parent.frames["content_frameset"].cols="100%";
parent.frames[a[1]].location.href=a[0];
break;
}
};
//-->
</script>
...
<a href="javascript:void(getURL('main.asp','content','news.asp','s_right'))">Som vanligt...</a><br>
<a href="javascript:void(getURL('spec.asp','content'))">Över hela</a>
Glöm inte att ta bort mellanrummet i ordet "javascript" i länkarna ;)
:)
PalleMedlem sedan apr. 20002 716 inlägg
Wee! Framsteg! :bire
..men..
Nu öppnas alla länkarna i top, alltså där länkarna ligger,
istället för de targets som följer med i funktionsanropet.
PalleMedlem sedan apr. 20002 716 inlägg
Hmm.. glöm mitt senaste inlägg. :r :OO
Jag får nu felet "Ett objekt förväntas" på rad 1..
..och eftersom Rad 1 inte innehåller nått så säger inte det så mycket tyvärr.
colioneMedlem sedan juni 20013 386 inlägg
PalleMedlem sedan apr. 20002 716 inlägg
Redigerade nyss mitt inlägg ovan. ;)
PalleMedlem sedan apr. 20002 716 inlägg
Ok.. nu fick jag bort det felmeddelande, hade missat att ändra funktionsnamnet. *morr* :r
Men.. tyvärr hjälpte det inte mycket. :(
Nu fungerar det bara i IE, i de andra webbläsarna jag testar det i är det heldött tyvärr.
Inget felmeddelande, nada..
Peter SMedlem sedan dec. 20025 484 inlägg
Det verkar inte gå att referera "frameset"-elementen på ett tillfredsställande sätt, så du får nog modifiera "frameset"-koden vid anrop av getURL()-funktionen.
:)
PalleMedlem sedan apr. 20002 716 inlägg
Jag har nästan fått det att fungera.. ;)
Nu är det bara Opera som inte vill ändra mitt frameset så det går över hela.
*forstätter knyppla*
Peter S - Du ska ha tack! :)
Peter SMedlem sedan dec. 20025 484 inlägg
Jag har också fått det att fungera i alla webbläsare utom Opera. Man får fundera ett tag till :)
:)