Hallo,
das beste ist, wenn Du Deinen unteren Frame immer wieder komplett neu beschreibst.
Es wuerde auch mit einer Division gehen, aber der Opera kann bis dato nicht mit einem layer.write() oder layer.innerHTML umgehen. Desweiteren wuerde ich die betroffenen Images vorladen:
var aryImages = new Array();
aryImages[0] = new Array(3);
aryImages[0][0] = new Image(100,100);
aryImages[0][0].src = „./Bild0.gif“;
aryImages[0][1] = „idImageName0“;
aryImages[0][2] = „theImageTitle0“;
aryImages[1] = new Array(3);
aryImages[1][0] = new Image(200,200);
aryImages[1][0].src = „./Bild1.gif“;
aryImages[1][1] = „idImageName1“;
aryImages[1][2] = „theImageTitle1“;
usw.
var defMainFrame = „NameMainFrame“; // z.B.: „unten“
var defStyleFile = „NameStyleFile“; // z.B.: „./style.css“
Ein Link auf ein Bild, das im MainFrame geladen werden soll, kann z.B. so aussehen:
[
Bild #1 anzeigen
](javascript:onLoadImg(1))
Als naechstes wird dann der gesammte HTML-String zusammengesetzt:
function onLoadImg(prmIdx)
{
var theHtmlStr = getHtmlStr(prmIdx);
with(window.frames[defMainFrame].document) {
open(„text/html“,„replace“);
write(theHtmlStr);
close();
}
}
function getTableStr(prmIdx)
{
var theImgObj = aryImages[prmIdx][0];
var theImgId = aryImages[prmIdx][1];
var theImgTitle = aryImages[prmIdx][2];
var theTableStr = „“;
theTableStr += „“;
theTableStr += „“;
theTableStr += „“;
theTableStr += „“;
theTableStr += „“;
theTableStr += „“;
theTableStr += „“;
return(theTableStr);
}
function getHtmlStr(prmIdx)
{
var theTableStr = getTableStr(prmIdx);
var theHtmlStr = „“;
theHtmlStr += „“;
theHtmlStr += „“;
theHtmlStr += „theTitleOfThisFile“;
theHtmlStr += „“;
theHtmlStr += „“;
theHtmlStr += „“;
theHtmlStr += theTableStr;
theHtmlStr += „“;
theHtmlStr += „“;
return(theHtmlStr);
}
Habe ich nicht getestet, aber sollte abgesehen von ein paar Tipfehlern meinerseits funktionieren.
CU