No, it is insertRule(rule, index). rule includes the selector, like html { color: lime; }, and index is a different thing. So there is no problem with my usage.
addRule is different. It requires to parameters like selector and rule.
addRule(selector, rule). Like addRule('html','color: lime;').
Anyway, I solved my problem using arrays. Here I post the code:
Code:
function changeRule(selector, ruleArray) {
var sheet = frames['testsite'].document.styleSheets[1];
if (sheet.insertRule) { // firefox
var rule = '';
for(i=0; i<ruleArray.length; i++) {
rule += ruleArray[i];
rule += ' ';
}
sheet.insertRule(""+selector+" { "+rule+" }", sheet.cssRules.length);
}
else if(sheet.addRule) { // ie
var rule = '';
for(i=0; i<ruleArray.length; i++) {
sheet.addRule(selector, ruleArray[i]);
}
}
}
var CSS = new Array("padding: "+TopmenuTdPadding+"px;","background-color: "+TopmenuTdBackgroundColor+";","text-align: "+TopmenuTdTextAlign+";");
changeRule("#selector",CSS);