N'abend. Ich bin so ein richtiger Vollblutanfänger und stoße überraschenderweise auf 'ne Menge Probleme. Folgendes Szenario: Meine Seite besteht aus einem Frameset mit 3 Frames (naja okay, eigentlich 3 Sets und 8+ Frames, aber das ist zu vernachlässigen...). Ich habe einen Bannerframe, einen Navigationsframe und einen für den Inhalt. Jetzt soll in die Navigation ein Auswahlmenü, damit ich die Farben und die Bilder (wegen der Kantenfüllung bei Transparenz) über mehrere Stysheets abändern kann. Ich habe mir da ansatzweise ein bißchen Quellcode zusammengeklaut, aber keinen Dunst davon. Sieht bisher so aus (in der Navi):
<form name="farbauswahl">
<select>
<option selected onclick="setActiveStyleSheet('grau'); return false;">grau</option>
<option onclick="setActiveStyleSheet('weiss'); return false;">weiss</option>
<option>blau</option>
</select>
</form>
In der dazugehörigen .js-Datei steht Folgendes:
function setActiveStyleSheet(title) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) a.disabled = false;
}
}
}
function getActiveStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
}
return null;
}
function getPreferredStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("rel").indexOf("alt") == -1
&& a.getAttribute("title")
) return a.getAttribute("title");
}
return null;
Daraus resultiert, daß der neu ausgewählte Stylesheet nur für den Navigationsframe angewendet wird und ich nicht die leiseste Ahnung habe, wie das auf die anderen Frames übertragen werden kann und gleichzeitig das Bild im Bannerframe abgeändert wird.
Ist mein Vorhaben überhaupt möglich, oder zum Scheitern verurteilt?
Für jede Hilfe bin ich dankbar, seid meine Heilsbringer! :)