Отличия движка Opera / Firefox от Javascript - PullRequest
0 голосов
/ 18 мая 2011

Я хотел бы знать, испытывал ли кто-либо еще этот «сбой» между браузерами с javascript.

Мой javascript был следующим

  var theForm = document.getElementById( 'theForm' );

  theForm.firstname = theForm.firstName.value.trim();
  theForm.lastname = theForm.lastName.value.trim();


  theForm.firstName.style.color = "red";

Кажется, это не работает в Opera 11, но работает в Firefox 4.

Я просто думаю, что два движка JavaScript работают по-разному.

Когда я отлаживаю javascript в обоих, я получаю разные результаты.

В Opera theForm.firstName превращается в обычную старую строку после присваивания, но в Firefox он остается элементом формы.

Кто-нибудь еще испытывал это?

Ответы [ 2 ]

2 голосов
/ 18 мая 2011
<form id="bar">
  <input name="foo">
</form>

var form = document.getElementById("bar");

form.foo; // is a DOM element

form.foo = form.foo.value.trim(); // trying to set a dom element to a string??

form.foo; // What am I?

Как браузер должен знать, является ли форма ["someName"] свойством или элементом DOM внутри формы, если вы затеняете его.

Вывод мусора, Вывод мусора.

1 голос
/ 18 мая 2011

Как сказал Рейнос: вы устанавливаете элемент DOM в строку.Измените свой код на

var theForm = document.getElementById( 'theForm' );
theForm.firstname.value = theForm.firstName.value.trim();
theForm.lastname.value = theForm.lastName.value.trim();
theForm.firstName.style.color = "red";
...