devotionMedlem sedan jan. 20012 711 inlägg
:e
Hej Har fått hjälp innan av Peter S och det funkade ju fint.. Men nu har jag tänkt till lite och skulle vilja ändra lite i funktionaliteten.
FrameSetkod
<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 src="mainFrame.html" name="mainFrame" id="mainFrame" title="mainFrame" />
<frame src="leftFrame.html" name="leftMenuFrame" id="leftMenuFrame" title="leftMenuFrame" />
</frameset>
<frame src="bottomFrame.html" name="bottomFrame" scrolling="No" noresize="noresize" id="bottomFrame" title="bottomFrame" />
</frameset>
topFramekod
<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>
</head>
<body>
<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ägg till arbetstid </td>
<td width="120"><a href="javascript:void(0)" onclick="navigate(['mainFrame','listMtrl.asp'], ['leftMenuFrame','Menu/solarArticleMenu.asp'])">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>
Jag skulle vilja ha det så att när man laddar framesetet så visas mainframe "osplittat" dvs säga som ett defaultläge. När man sedan klickar på något av menyvalen i topFrame så "splittas" mainFrame vid behov... Har pillat och pillat men inte fått till det...
Någon som vet?
Mvh
Henrik
Peter SMedlem sedan dec. 20025 484 inlägg
God kväll!
Som det är nu visas mainFrame osplittad. Vill du använda endast en länk för att visa/dölja vänsterramen?
devotionMedlem sedan jan. 20012 711 inlägg
God kväll Peter S!
Trevligt att du dök upp så här på kvällskvisten... ;)
Jag har inte riktigt bestämt mig för vilka menyval jag ska ha ha men rent generellt så vill jag ha två valmöjligheter. Antingen splittas mainFrame, eller inte.
Så nar framesetet laddas så vill jag att startFrame laddas... "hej på dig din bäver!"
Sen ska man kunna lägga till artiklar då vill jag när man klickar på menyvalet "lägg till material" så ska articleMenu.asp laddas i leftMenuFrame och articleList.asp i mainFrame
när man klickar på "visa material" ska listmtrl laddas i hela mainFrame dvs osplittad..
Hoppas du fattar...
Henrik
Peter SMedlem sedan dec. 20025 484 inlägg
Förresten, det verkar mer logiskt att ändra ramkoden till:
<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="leftFrame.html" 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>
devotionMedlem sedan jan. 20012 711 inlägg
hmmm.. det verkar funka med den ändringen... ska testa lite till....
devotionMedlem sedan jan. 20012 711 inlägg
nä, det är inte helt funkish...
Ibland laddas det rätt och ibland inte....
//Henrik
Peter SMedlem sedan dec. 20025 484 inlägg
Kan du beskriva vad det är som inte laddas riktigt? Kanske beskriva ett "klickförfarande" som inte resulterar i vad du tänkt, så att en annan kan testa. :)
devotionMedlem sedan jan. 20012 711 inlägg
ok!
Koden ser ut så här nu!
Frameset
<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="leftFrame.html" 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>
topFrame så här
<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>
</head>
<body>
<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ägg till arbetstid </td>
<td width="120"><a href="javascript:void(0)" onclick="navigate(['mainFrame','listMtrl.asp'], ['leftMenuFrame','Menu/solarArticleMenu.asp'])">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>
</body>
när jag laddar framesetet så visas mainFrame.html det är ju fint.. den kan ju vara som en startFrame!
Sen klickar jag på "Lägg till material"
Då visas listMaterial.asp i mainFrame och leftFrame.html i leftMenuFrame... Det som skall visas i leftMenuFrame är Menu/solararticleMenu.asp och den visas när den har laddat klart. Det är en dynamisk meny som hämtar data från en databas och tar lite tid på sig... men det kan ju vara bra att leftFrame.html visas som en pausbild...
så långt är det ok!
Sejn när jag klickar på Visa material (viewmtrl.asp)blir det segt.. det tar lång tid innan den visas men ibland komer den upp. Ibland visas listmtrl.asp istället.. Har gissat att det kanske beror på att solarArticleMenu.asp laddas i bakgrunden... men jag vet inte...
Hopas du fattar.. det är svårt att skriva ner...
Henrik
Peter SMedlem sedan dec. 20025 484 inlägg
Hm, men om sidorna faktiskt visas i ramarna (om än att det tar lång tid!), är det inget fel på ovanstående kod. Däremot ser jag nu att vi kan förenkla navigate() en aning:
function navigate(){
var args = arguments,
len = args.length,
middle = top.document.getElementById("middle");
switch (len){
case 1: middle.cols = "*,100%"; break;
case 2: middle.cols = "20%,*"; break;
}
for (var i = 0; i < len; ++i){
top.frames[args[i][0]].location.href = args[i][1];
}
}
Kan det inte ha med ASP-koden att göra?
devotionMedlem sedan jan. 20012 711 inlägg
Jo iofs...
men den enda sidan som använder asp nu är solarArticleMenu.asp.. de andra är blanka med endast namnet på filen så jag ska veta vilken det är. Men jag fattar inte varför det ibland visas listmtrl.asp och ibland viewmtrl.asp när jag klickar på "Visa material" webläasaren bara tuggar...
Henrik
devotionMedlem sedan jan. 20012 711 inlägg
det är just skiftet mellan listmtrl.asp och viewmtrl.asp (som båda är i mainFrame) som segar... ibland laddas viewmtrl.asp direkt och ibland så får den stå och tugga...
//Henrik
devotionMedlem sedan jan. 20012 711 inlägg
Men är det så att solarArticleMenu.asp laddas när jag klickar på "visa material"?
Det känns så.. Det tar ungefär lika lång tid som det tar att ladda menyn.. Går inte det att undvika?
//Henrik
Peter SMedlem sedan dec. 20025 484 inlägg
När du klickar på "visa material" laddas viewMtrl.asp. Men det är klart, om du nyss klickat på den andra länken så att menysidan laddas, kommer den fortsätta laddas även fast den döljs av mainFrame.
devotionMedlem sedan jan. 20012 711 inlägg
jo, jag har suttit och klockat lite och det verkar vara så... går det att göra på nått annat sätt... Jag gör sidan åt några otåliga elektriker som inte kommer att gilla att vänta 10 s som det ibland tar att skifta i menyn?
Peter SMedlem sedan dec. 20025 484 inlägg
Ok, vi modifierar litet:
function navigate(){
var args = arguments;
for (var i = 0; i < 2; ++i){
top.frames[args[i][0]].location.href = args[i][1];
}
top.document.getElementById("middle").cols = args[2] + "," + args[3];
}
<td width="100"><a href="javascript:void(0)" onclick="navigate(['mainFrame','viewMtrl.asp], ['leftMenuFrame', 'about:blank'], '*', '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.asp'], ['leftMenuFrame','Menu/solarArticleMenu.asp'], '20%', '*')">Lägg till material</a></td>
devotionMedlem sedan jan. 20012 711 inlägg
nu går det inta att skifta alls... :(
det händer inget när jag klickar på "visa material"
Henrik
Peter SMedlem sedan dec. 20025 484 inlägg
devotionMedlem sedan jan. 20012 711 inlägg
så här:
topframe.html
<title>Untitled Document</title>
<script type="text/javascript">
function navigate(){
var args = arguments;
for (var i = 0; i < 2; ++i){
top.frames[args[i][0]].location.href = args[i][1];
}
top.document.getElementById("middle").cols = args[2] + "," + args[3];
}
</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.asp], ['leftMenuFrame', 'about:blank'], '*', '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.asp'], ['leftMenuFrame','Menu/solarArticleMenu.asp'], '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>
</body>
</html>
frameset
<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="leftFrame.html" 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>
//Henrik
Peter SMedlem sedan dec. 20025 484 inlägg
Den koden fungerar bra för mig. Testa att starta om webbläsaren.
devotionMedlem sedan jan. 20012 711 inlägg
nix.. händer inget... :(
//Henrik