У меня есть приложение YUI, и в данном конкретном случае я просто пытаюсь установить атрибут для элемента ввода, используя следующий код.
var itemDescription = document.createElement( "input" );
itemDescription.setAttribute("type","text");
YAHOO.util.Dom.addClass( itemDescription, "textInput" );
YAHOO.util.Dom.addClass( itemDescription, (isPicture ? "pictureTextInput" : "otherTextInput" ) );
YAHOO.util.Dom.setAttribute( itemDescription, "maxlength", (isPicture ? "60" : "40" ) );
itemDescription.maxlength = (isPicture ? "60" : "40" );
itemDescription.name = "description";
itemDescription.title = "description";
itemDescription.id = "desc-"+this.fileId;
Особый интерес представляет строка 5 (и, возможно, строка 6), где установлен атрибут maxLength
. Когда я открываю этот сайт с локального сервера Tomcat 6 под управлением Windows XP, атрибут устанавливается правильно. Отладка с помощью инструментов разработчика IE8 показывает, что для innerHtml
и maxLength
установлено правильное значение. Когда я открываю этот сайт на нашем удаленном сервере AIX под управлением Weblogic 10, устанавливается только innerHtml
, а фактический атрибут maxLength
остается неизменным.
Я знаю, что код не (правильно?) Ссылается на чувствительное к регистру имя атрибута, но я все еще не понимаю, почему ожидаемое поведение достигается локально, а не удаленно. Я не могу себе представить, почему ОС или контейнер сервлетов должен иметь значение, но я едва разбираюсь в Javascript и унаследовал эту кодовую базу, поэтому для ясности, вот статистика среды.
Местное
ОС: Windows XP
Контейнер сервлетов: Tomcat 6
Remote
ОС: AIX
Контейнер сервлетов: Weblogic 10
Я использую браузер IE8 (8.0.6001.18702).