А вот и фикс для сложившейся ситуёвины.
if (window.opera){ // Опера онли
document.addEventListener('DOMAttrModified', function(e){ // при изменении аттрибута любого элемента на странице
if (arguments.callee.skip || e.attrName != "style") return; // если установлен .skip, или если изменился аттрибут не style - на выход
var trigger = (e.srcElement||e.target); // кто же вызвал объект?
switch (trigger.tagName.toLowerCase()){ // и в зависимости от его имени тега
case "input":
case "textarea":
case "select":
case "option":
case "optgroup":
arguments.callee.skip = true; // временно дизаблим себя же. Это безопасно, никто вклиниться не успеет.
trigger.style = e.newValue; // прописываем style явным образом.
arguments.callee.skip = false; // снова подключаем себя
break;
};
}, true); // капчуринг
};
Подключать на странице как можно выше.