?? hintergrundbild bei frames veraendern ??
Sebastian Mohr
- javascript
warum geht das beim internet exploerer aber nicht beim netscape?:
gegeben ist ein frameset
<FRAMESET border="0" frameBorder="NO" frameSpacing="0" rows="1*,428,1*">
<FRAME frameBorder="NO" marginHeight="0" marginWidth="0" name="topFrame" scrolling="no" src="border/topframe.htm">
<FRAMESET border="0" cols="1*,655,1*" frameBorder="NO" frameSpacing="0">
<FRAME frameBorder="NO" marginHeight="0" marginWidth="0" name="leftFrame" scrolling="no" src="border/leftframe.htm">
<FRAME frameBorder="NO" marginHeight="0" marginWidth="0" name="main" scrolling="no" src="content/start.htm">
<FRAME frameBorder="NO" marginHeight="0" marginWidth="0" name="rightFrame" scrolling="no" src="border/rightframe.htm">
</FRAMESET>
<FRAME frameBorder="NO" marginHeight="0" marginWidth="0" name="bottomFrame" scrolling="no" src="border/bottomframe.htm">
</FRAMESET>
----------------------------
| topFrame |
----------------------------
| leftF | main | rightF |
----------------------------
| bottomFrame |
----------------------------
in dessen "main"-frame die funktion
function changeBorderBackground(url){
top.topFrame.changeBackground(url);
top.bottomFrame.changeBackground(url);
top.parent.leftFrame.changeBackground(url);
top.parent.rightFrame.changeBackground(url);}
per "onload" aufgerufen wird. fuer changeBackground-code su.
in allen frames sind die javascript-funktionen ordnungsgemaess
eingebunden.
----------------------------------
function changeBackground (url) {
if (document.layers) {
if (!backgroundLayer) {
backgroundLayer = new Layer(1);
}
background = url;
var l = backgroundLayer;
if (!url) {
var html = '<HTML>' + '<BODY BGCOLOR="' + document.bgColor + '"' + ' BACKGROUND="' + blankImage.src + '"></BODY></HTML>';
}
else
var html = '<HTML><BODY BACKGROUND="' + url + '"></BODY></HTML>';
l.zIndex = 0;
l.clip.width = window.innerWidth + 10;
l.clip.height = window.innerHeight + 10;
l.document.open();
l.document.write(html);
l.document.close();
l.visibility = 'show';
}
else if (document.body)
document.body.background = url;
}
Hallo,
warum geht das beim internet exploerer aber nicht beim netscape?:
Welcher Netscape? Versuche es so in moderneren Browsern:
parent.frames["framename"].document.getElementsByTagName("body")[0].style.backgroundImage="url(hintergrundb.ild)";
MfG, Thomas
Welcher Netscape? Versuche es so in moderneren Browsern:
netscape 4x. halt fuer document.layers. es sollte ja bei
moeglichst vielen gehen.
parent.frames["framename"].document.getElementsByTagName("body")[0].style.backgroundImage="url(hintergrundb.ild)";
das ist wohl die ns6+ oder ie5+ (opera|mozilla) variante.
Hallo,
Welcher Netscape? Versuche es so in moderneren Browsern:
netscape 4x. halt fuer document.layers. es sollte ja bei
moeglichst vielen gehen.
Hast Du schon document.background="b.ild"; probiert?
MfG, Thomas
Hast Du schon document.background="b.ild"; probiert?
meinst du etwa in etwa so?
function changeBackground (url) {
if (document.layers) {
document.background = url
}
else if (document.body)
document.body.background = url;
}
das geht leider nicht. problem bei ns4x ist das man per
javascript nicht den body background veraendern kann.
das geht nur bei layern. deshalb macht man in der
hintergrundbildzuveraendernden datei folgendes: man
fuegt in der obersten ebene (gleich nach <body>) einen
div-tag hinzu und veraendert dessen "background".
zumindestens denke ich das die ganze zeit.
du weisst ja: "wer zuerst kommt, mahlt zuerst ... in den kopf".
was ich halt nicht verstehe ist, warum meine eingangs vorgestellte
"changeBackground"-funktion bei frames nicht mehr funktioniert,
obwohl sie es ohne frames tat. wahrscheinlich liegt das problem in
dieser funktion:
function changeBorderBackground(url){
alert(parent.topFrame);
top.topFrame.changeBackground(url);
top.bottomFrame.changeBackground(url);
top.parent.leftFrame.changeBackground(url);
top.parent.rightFrame.changeBackground(url);}
ie5 macht es super: er durchlaeuft diese funktion und ruft die
in den jeweiligen frames die eingebundene funktion
"changeBackground(url);" auf. doch schafft es nicht der ns4.
und wie gesagt, ohne frames funktiert sie ja!
alle diese frames bekommen diese funktion aus derselben datei:
topFrame
^
leftFrame <- global.js -> rightFrame
v
bottomFrame .
also ich habe da ein verstaendnis- bzw nachvollziehproblem.
also,
mahl/mahlt mir in den kopf :)