Jag bifogar ett exempel som du kan kika på. :)
Ladda i Frames #2
38 svar · 1 079 visningar · startad av devotion · sida 2 av 2
hmmm, ska titta...
Jag är nog trött nu... men din kod funkar fint... det konstiga är ju att du skrivit av det jag sagt...
Tack så mycket för hjälpen!!
Mvh
Henrik
Annars får vi ta nya tag imorgon. :bire
Hmm..
Tänkte på en sak... Efterom menyn är rekursiv och tar lite tid att ladda, kan man inte alltid ha den laddad i bakgrunden och bara dölja den när man inte använder den... Det funkar perfekt nu men det är lite segt att växla mellan menyvalen. Det tar cirka 10 sekunder. Hade det varit i ett initialt skede hade det inte gjort nåt, men nu ska man ju kunna växla mellan att se sin materiellista och kunna lägga till mer material...
Bara en tanke...
Men, nu är det slut för idag... godnatt!
//Henrik
Det verkar ju onekligen vara en bra idé! Då kan vi göra så här:
<frameset rows="85,*,80" cols="*" framespacing="0" frameborder="yes" border="0">
<frame src="topFrame.html" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
<frameset cols="*,100%" id="middle">
<frame src="Menu/solarArticleMenu.asp" name="leftMenuFrame" id="leftMenuFrame" title="leftMenuFrame" />
<frame src="mainFrame.html" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<frame src="bottomFrame.html" name="bottomFrame" scrolling="No" noresize="noresize" id="bottomFrame" title="bottomFrame" />
</frameset>
<script type="text/javascript">
function navigate(){
var args = arguments;
top.frames[args[0][0]].location.href = args[0][1];
top.document.getElementById("middle").cols = args[1] + "," + args[2];
}
</script>
</head>
<body>
<table width="1000" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100"><a href="javascript:void(0)" onclick="navigate(['mainFrame','viewMtrl.html'], '*', '100%')">Visa material</a></td>
<td width="100">Visa arbetstid </td>
<td width="120">Lägg till arbetstid </td>
<td width="120"><a href="javascript:void(0)" onclick="navigate(['mainFrame','listMtrl.html'], '20%', '*')">Lägg till material</a></td>
<td width="60"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
</tr>
</table>
Säg till om du vill ha exemplet zippat. ;)
hmff.. jag klarade faktiskt att klippOKlistra denna gången... Nu funkar det fint igen.... Man blir nästan tårögd...
Tack för hjälpen!
Mvh
Henrik
devotion skrev:
hmff.. jag klarade faktiskt att klippOKlistra denna gången... Nu funkar det fint igen.... Man blir nästan tårögd...
Tack för hjälpen!
Mvh
Henrik
Haha! :birp
Weee! :)
Dags att väcka en gammal tråd ur sin Törnrosasömn...
Det funkar finfint enligt inlägg #27, men skulle amn inte kunna modifiera lite så att när man klickar på "Lägg till material" så antingen visas mainframe splittat eller osplittad. Dvs en dölj/visa.
Jag har ändrat "Lägg till Material" till "Visa produktkatalog" (som är en trädmeny med olika kategorier)
HUr gör man för att ändra till "Visa/dölj produktkatalog" ?
Mvh
Henrik
topFrame.html:
<script type="text/javascript">
var hid = true;
function navigate(){
var args = arguments;
if (!args[3] || hid){
top.frames[args[0][0]].location.href = args[0][1];
top.document.getElementById("middle").cols = args[1] + "," + args[2];
hid = !args[3];
}
else if (args[3] && !hid){
top.document.getElementById("middle").cols = "*,100%";
hid = true;
}
}
</script>
</head>
<body>
<table width="1000" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100"><a href="javascript:void(0)" onclick="navigate(['mainFrame','viewMtrl.html'], '*', '100%', false)">Visa material</a></td>
<td width="100">Visa arbetstid </td>
<td width="120">Lägg till arbetstid </td>
<td width="120"><a href="javascript:void(0)" onclick="navigate(['mainFrame','listMtrl.html'], '20%', '*', true)">Visa/dölj produktkatalog</a></td>
<td width="60"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
</tr>
</table>
:)
Hej! :)
Det funkar fint! Men det kanske går att göra lite bättre.
Kan man "behålla" den sidan som var laddad i mainframe, när man visar/döljer produktkatalogen? Nu hoppar ju listMtrl.html upp hela tiden. Den sidan innehåller ju egentligen ingenting, utan är bara en "paussida". Det bästa hade som sagt varit om det som är laddat i mainFrame finns kvar när man visar döljer
Mvh
Henrik
<script type="text/javascript">
var curr = 0;
function navigate(){
var args = arguments,
mid = top.document.getElementById("middle");
if (!args[3]){
top.frames[args[0][0]].location.href = args[0][1];
mid.cols = args[1] + "," + args[2];
curr = 0;
} else {
if (curr == 0){
top.frames[args[0][0]].location.href = args[0][1];
mid.cols = args[1] + "," + args[2];
curr = 1;
} else if (curr == 1){
mid.cols = "*,100%";
curr = 2;
} else if (curr == 2){
mid.cols = args[1] + "," + args[2];
curr = 1;
}
}
}
</script>
</head>
<body>
<table width="1000" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100"><a href="javascript:void(0)" onclick="navigate(['mainFrame','viewMtrl.html'], '*', '100%', false)">Visa material</a></td>
<td width="100">Visa arbetstid </td>
<td width="120">Lägg till arbetstid </td>
<td width="120"><a href="javascript:void(0)" onclick="navigate(['mainFrame','listMtrl.html'], '20%', '*', true)">Visa/dölj produktkatalog</a></td>
<td width="60"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
<td width="100"> </td>
</tr>
</table>
:)
Hejsan :)
Det funkar nästan...
Menyn i topFrame.asp ser ut så här:
<table width="837" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="119" class="text11px"><a href="javascript:void(0)" onclick="navigate(['mainFrame','mainFrame.asp'], '*', '100%')"><span class="links">Visa uppdragsinfo</span></a></span></td>
<td width="119" class="text11px"><a href="task.asp" target="mainFrame">Uppdrag/åtgärd</a></td>
<td width="119" class="text11px"><a href="addTime.asp" target="mainFrame">Lägg till arbetstid</a> </td>
<td width="120" class="text11px"><a href="javascript:void(0)" onclick="navigate(['mainFrame','viewTime.asp'], '*', '100%')"><span class="links">Visa Arbetstid </span></a></td>
<td width="120"><span class="text11px"><a href="javascript:void(0)" onclick="navigate(['mainFrame','viewMtrl.asp'], '*', '100%', false)"><span class="links">Visa material</span></a></span></td>
<td width="120"><span class="text11px"><a href="javascript:void(0)" onclick="navigate(['mainFrame','listMtrl.asp'], '40%', '*', true)">Visa/dölj produktkatalog</a></span></td>
<td width="120"><span class="text11px"><a href="viewLog.asp" target="mainFrame">Logg </a></span></td>
</tr>
</table>
När man klickar på de länkarna så behålls inte laddad sida.
När jag klickar på en länk i bottomFrame däremot, så funkar det fint, dvs innehållet i mainframe behålls...
Har jag gjort fel någonstans kanske...
Mvh
Henrik
Nu hänger jag inte riktigt med. Låt säga att jag klickar på Visa/dölj och sedan klickar på en länk i SolarArticleMenu.asp som laddas i mainFrame. Då kan jag klicka på Visa/dölj utan att navigeras bort från den nyklickade länken. Var det inte så du ville ha det? :)
Hehe! :)
Jo, det var precis så jag ville ha det... Och så fungerar det för mig också.
Dvs det fungerar när länken finns i artikelmenyn och i bottomframe. Men inte när länken finns i topframe. Men det kanske inte går att göra så?
Mvh
Henrik
Hej! :)
Nu ser min meny ut så här:
<table width="837" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="119"><a href="mainFrame.asp" target="mainFrame" class="menuLinks"> Visa uppdragsinfo</a></td>
<td width="119"><a href="task.asp" target="mainFrame" class="menuLinks">Uppdrag/åtgärd</a></td>
<td width="119"><a href="addTime.asp" target="mainFrame" class="menuLinks">Lägg till arbetstid</a></td>
<td width="120"><a href="viewTime.asp" target="mainFrame" class="menuLinks">Visa Arbetstid</a></td>
<td width="109"><a href="viewMtrl.asp" target="mainFrame" class="menuLinks">Visa material</a></td>
<td width="168"><a href="javascript:void(0)" class="menuLinks" onclick="navigate(['mainFrame','listMtrl.asp'], '40%', '*', true)">Visa/dölj produktkatalog</a></td>
<td width="83"><a href="viewLog.asp" target="mainFrame" class="menuLinks">Logg </a></td>
</tr>
</table>
det funkar fint, nästan.
Kan man inte ta bort 'listMtrl.asp' den filen har egentligen inget syfte utan är bara "utfyllnad" det viktigaste är att man kan visa/dölja produktkatalogen och låta det som är laddat i mainFrame vara kvar....
Mvh
Henrik
Hej igen! :) Ursäkta dröjsmålet.
<script type="text/javascript">
var opn = false;
function shf(menusze, mainsze){
top.document.getElementById("middle").cols = opn ? "*,100%" : menusze + "," + mainsze;
opn = !opn;
}
</script>
</head>
<body>
<table width="837" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="119"><a href="mainFrame.asp" target="mainFrame" class="menuLinks"> Visa uppdragsinfo</a></td>
<td width="119"><a href="task.asp" target="mainFrame" class="menuLinks">Uppdrag/åtgärd</a></td>
<td width="119"><a href="addTime.asp" target="mainFrame" class="menuLinks">Lägg till arbetstid</a></td>
<td width="120"><a href="viewTime.asp" target="mainFrame" class="menuLinks">Visa Arbetstid</a></td>
<td width="109"><a href="viewMtrl.asp" target="mainFrame" class="menuLinks">Visa material</a></td>
<td width="168"><a href="javascript:void(0)" class="menuLinks" onclick="shf('40%','*')">Visa/dölj produktkatalog</a></td>
<td width="83"><a href="viewLog.asp" target="mainFrame" class="menuLinks">Logg </a></td>
</tr>
</table>
Jag lovar, du är ursäktad! ;)
Tack så hemskt mycket...
Den här funktionen har utvecklats lite under resans gång..
Mvh
henrik