У меня есть контроллер с:
render :update do |page|
page.replace_html 'some_id', :partial => 'some_partial'
end
Он отлично работает в Firefox, но IE выдает «Ошибка RJS: [Ошибка объекта]»
Глядя на сгенерированный JavaScript, онвыглядят так:
Element.update("some_id", "\u003Cselect id=\"some_other_id\" name=\"some_name[]\"\u003E\u003Coption value=\"-1\"\u003E\u0026lt; Default option \u0026gt;\u003C/option\u003E\n\u003Coption value=\"1\" selected=\"selected\"\u003E Some option \u003C/option\u003E\u003C/select\u003E\n");
Но даже попытка с Element.update("some_id", "hello world")
не удалась в IE.
Замена на пустую строку работает, хотя.
Просмотр функции Element.update:
update: function(element, content) {
element = $(element);
if (content && content.toElement) content = content.toElement();
if (Object.isElement(content)) return element.update().insert(content);
content = Object.toHTML(content);
element.innerHTML = content.stripScripts();
content.evalScripts.bind(content).defer();
return element;
}
Похоже, что element.innerHTML = content.stripScripts();
вызывает некоторые проблемы, вызывая «неизвестную ошибку времени выполнения» независимо от того, что я передаю, кроме пустой строки.
Я знаю, что IE будетжаловаться, если пытаюсь поместить элемент уровня блока внутри встроенного элемента, но это не так.
Я на рельсах 2.3.11, scriptaculous 1.8.1 и прототипе 1.6.0.3
Я совсем растерялся - любые намеки приветствуются.