Почему этот Javascript действует по-разному, в одном и том же браузере, в зависимости от того, где он запущен? - PullRequest
0 голосов
/ 18 августа 2011

У меня есть приложение 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...