JBO_Zocker
Cadet 3rd Year
- Registriert
- März 2007
- Beiträge
- 45
Hallo zusammen,
Ich habe mir hier ein JavaScript zusammengebaut, das externe stylesheets ausliest oder verändert:
Ich hoffe, er erklärt sich von selbst.
Jetzt binde ich dieses Script zusammen mit dem Stylesheet ein. Wohlgemerkt erst das Stylesheet. Wenn ich aber die komplette Seite aufrufe, funktioniert im Opera Browser genau das javaScript nicht. Ich weiß nicht, ob das Stylesheet noch nicht geladen ist zu dem Zeitpunkt, oder woran es sonst liegen könnte. Ich kenne nur die Fehlermeldung, die die Fehlerkonsole mir ausspuckt:
Wenn ich jetzt auf der Seite nen Link aufrufe, funktioniert alles. Keine Fehlermeldungen. Und wenn ich danach aktualisiere auch. Nur beim ersten Start klappt das nicht. Und nur in Opera.
Zu erwähnen wäre vielleicht noch, dass die Homepage auf dem CMS Contenido läuft.
Kann mir vielleicht jemand bei diesem Problem behilflich sein? Übersehe ich irgendetwas?
Vielen Dank schon mal im vornherein.
JBO_Zocker
Ich habe mir hier ein JavaScript zusammengebaut, das externe stylesheets ausliest oder verändert:
Code:
function style(name, attribute, value){
var stylesheet = document.styleSheets[0];
var rules;
if(typeof(stylesheet.cssRules) != "undefined" && stylesheet.cssRules !== null)
rules = stylesheet.cssRules;
else
rules = stylesheet.rules;
var ruleIndex;
for(var i=0;i<rules.length;i++){
if(rules[i].selectorText == name){
ruleIndex = i;
}
}
var order;
var returnValue;
if(!ruleIndex){
if(value){
var totalrules=stylesheet.cssRules? stylesheet.cssRules.length : stylesheet.rules.length;
if(stylesheet.deleteRule){
order = 'stylesheet.insertRule("'+name+'{}", totalrules-1);';
}
else
order = 'stylesheet.addRule("'+name+'","");';
eval(order);
for(i=0;i<rules.length;i++){
if(rules[i].selectorText == name)
ruleIndex = i;
}
}
}
if(value){
order ="rules["+ruleIndex+"].style."+attribute+"=\""+value+"\";";
eval(order);
}
else{
order = "returnValue = rules["+ruleIndex+"].style."+attribute;
eval(order);
return returnValue;
}
}
Ich hoffe, er erklärt sich von selbst.
Jetzt binde ich dieses Script zusammen mit dem Stylesheet ein. Wohlgemerkt erst das Stylesheet. Wenn ich aber die komplette Seite aufrufe, funktioniert im Opera Browser genau das javaScript nicht. Ich weiß nicht, ob das Stylesheet noch nicht geladen ist zu dem Zeitpunkt, oder woran es sonst liegen könnte. Ich kenne nur die Fehlermeldung, die die Fehlerkonsole mir ausspuckt:
Uncaught exception: ReferenceError: Security error: attempted to read protected variable
Error thrown at line 7, column 4 in style(name, attribute, value) in http://blablabla/blablabla/blablabla/js/help.js:
if(typeof(stylesheet.cssRules) != "undefined" && stylesheet.cssRules !== null)
Wenn ich jetzt auf der Seite nen Link aufrufe, funktioniert alles. Keine Fehlermeldungen. Und wenn ich danach aktualisiere auch. Nur beim ersten Start klappt das nicht. Und nur in Opera.
Zu erwähnen wäre vielleicht noch, dass die Homepage auf dem CMS Contenido läuft.
Kann mir vielleicht jemand bei diesem Problem behilflich sein? Übersehe ich irgendetwas?
Vielen Dank schon mal im vornherein.
JBO_Zocker