Hi,
function changeColor(id, color){
document.getElementById(id).style.backgroundColor = color;
}... damit kann ich den Hintergrund nachträglich ändern, das klappt auch gut.
Aber ich weiss nicht wie man die hintergrundfarbe eines andern frames ausliest und damit einen dritten Frame einfärbt ...
So kannst du andere Frames ansprechen.
Das auslesen der Hintergrundfarbe gestaltet sich schwieriger, falls du sie nicht vorher mit Javascript gesetzt hast. Dabei hilft dir die hier vorgestellte Funktionalität getStyle (Du kannst sie direkt in deinen JS-Code kopieren).
Als ersten Parameter erwartet sie das Objekt, dessen CSS-Eigenschaft du auslesen willst, und der zweite ist ein String mit dem Namen der CSS-Eigenschaft.
Hier mal ein Beispiel, das die Hintergrundfarbe der aktuellen Seite (bzw des aktuellen Frames) ausgibt:
function showBgColor()
{
var farbe = getStyle(document.getElementsByTagName('body')[0],'background-color');
alert(farbe);
}
function getStyle(oElm, strCssRule){
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle){
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
}
else if(oElm.currentStyle){
strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
strValue = oElm.currentStyle[strCssRule];
}
return strValue;
}
Du musst nur noch den Aufruf von getStyle() so abändern, dass als erster Parameter der Body von dem gewünschten Frame übergeben wird.
mfG,
steckl