webForumDet fria alternativet

Ladda i Frames

10 svar · 832 visningar · startad av devotion

devotionMedlem sedan jan. 20012 711 inlägg
#1

Hej!
Jag har ett frameSet som består av topFrame, bottomFrame, leftMenuFrame och mainFrame

Ibland så vill jag ha menuFrame OCH mainFrame och ibland så vill jag bara ha mainFrame

Dessa val gör jag i topFrame som har en meny...

Kan jag göra det på något smidigt sätt?

Mvh
Henrik

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Hejsan!

Menar du att du vill kunna ladda sidor i de olika ramarna? Om så, hur vill du göra det; med länkar, <select> eller något annat?

devotionMedlem sedan jan. 20012 711 inlägg
#3

Nä.. eller det också kanske..

det jag vill är att "splitta" mainFrame till mainFrame och leftMenuFrame (och ladda sidor där beroende på menyvalet i topFrame!

Mvh
Henrik

Peter SMedlem sedan dec. 20025 484 inlägg
#4

Om vi antar att ditt ramsystem ser ut enligt (notera id-attributet):

<frameset rows="25%,*,25%">
  <frame name="topFrame">
  <frameset [b]id="middle"[/b]>
    <frame name="leftMenuFrame">
    <frame name="mainFrame">
  </frameset>
  <frame name="bottomFrame">
</frameset>

Då (i topFrame)

<a href="javascript:void(0)" onclick="top.document.getElementById('middle').cols='0,100%'">mainFrame only</a>
<a href="javascript:void(0)" onclick="top.document.getElementById('middle').cols='20%,*'">leftMenuFrame/mainFrame</a>

:)

devotionMedlem sedan jan. 20012 711 inlägg
#5

Hmm får inte till det riktigt...

Mitt Frameset ser ut så här:

<frameset rows="85,*,80" cols="*" framespacing="0" frameborder="no" border="0">
  <frame src="topFrame.html" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
  <frameset id="middle">
    <frame src="menu/solarArticleMenu.asp" scrolling="auto" />
    <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>

topFrame:

<table width="1000" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="100"><a href="javascript:void(0)" onclick="top.document.getElementById('middle').cols='0,100%'">Visa material</a></td>
    <td width="100">Visa arbetstid </td>
    <td width="120">L&auml;gg till arbetstid </td>
    <td width="120"><a href="javascript:void(0)" onclick="top.document.getElementById('middle').cols='20%,*'">Lägg till material</a></td>
    <td width="60">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
  </tr>
</table>

när jag klickar på någon av länkarna visas detta felmeddelande:
'top.document.getelementById(...)' är null eller inget objekt...

Peter SMedlem sedan dec. 20025 484 inlägg
#6

Ange värden för cols i <frameset cols="100%,*" id="middle">. :)

devotionMedlem sedan jan. 20012 711 inlägg
#7

Ha!
Funkar ju fint... tog bort lite för mycket först.. Det konstiga var att det fungerade i FireFox men inte i IE...

Thanx!

Men hur väljer jag vilka sidor som skall laddas?

När jag klickar på Visa material så skall ju viewmtrl.asp laddas i mainFrame och när jag klickar på Lägg till material ska ju articleMenu.asp laddas i menyn och listMtrl.asp laddas i mainFrame..

//Henrik

Peter SMedlem sedan dec. 20025 484 inlägg
#8

Glöm inte att döpa din menyram till "leftMenuFrame":

<script type="text/javascript">

function navigate(){
    var args   = arguments,
        len    = args.length,
        middle = top.document.getElementById("middle");

    switch (len){
	case 1:
	{
	    middle.cols = "*,100%";
	    top.frames[args[0][0]].location.href = args[0][1];

	} break;

	case 2:
	{
	    middle.cols = "20%,*";

	    for (var i = 0; i < len; ++i){
		top.frames[args[i][0]].location.href = args[i][1];
	    }

	} break;
    }
}

</script>

<table width="1000" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="100"><a href="javascript:void(0)" onclick="navigate(['mainFrame','viewMtrl.asp'])">Visa material</a></td>
    <td width="100">Visa arbetstid </td>
    <td width="120">L&auml;gg till arbetstid </td>
    <td width="120"><a href="javascript:void(0)" onclick="navigate(['mainFrame','listMtrl.asp'], ['leftMenuFrame','articleMenu.asp'])">Lägg till material</a></td>
    <td width="60">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
    <td width="100">&nbsp;</td>
  </tr>
</table>
devotionMedlem sedan jan. 20012 711 inlägg
#9

tack för det... men det vill sig inte... riktigt hus ka framesetet se ut nu...??

ska jag hamed frame src"" ?

<frameset rows="85,*,80" cols="*" framespacing="0" frameborder="no" border="0">
  <frame src="topFrame.html" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
  <frameset cols="100%,*" id="middle">
    <frame name="leftMenuFrame" scrolling="auto" id="leftMenuFrame" title="leftMenuFrame" />
    <frame name="mainFrame" id="mainFrame" title="mainFrame" />
  </frameset>
  
  <frame src="bottomFrame.html" name="bottomFrame" scrolling="No" noresize="noresize" id="bottomFrame" title="bottomFrame" />
</frameset>

börjar känna mig tjatig... sorry...

Mvh
Henrik

Peter SMedlem sedan dec. 20025 484 inlägg
#10

Det smög sig in ett litet fel i koden ovan. Se det redigerade inlägget. :)

devotionMedlem sedan jan. 20012 711 inlägg
#11

Det är ju så man blir tårögd.... Vackert!!

Tack för hjälpen Peter S!

Mvh
Henrik

Genererad på 383 ms · cache AV · v20260730165559-full.f96bc7eb