2011-05-18 29 views
0

我想知道是否有其他人使用javascript在瀏覽器之間經歷過這種「故障」。Opera/Firefox Javascript引擎差異

我的JavaScript是以下

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

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


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

這似乎並不在歌劇11工作,但在Firefox 4,工作

我只是覺得,這兩個JavaScript引擎進行不同處理的事情。

當我在這兩個調試的JavaScript我得到不同的結果。

在Opera中,theForm.firstName在賦值後變成一個普通的舊字符串,但在Firefox中它保留一個表單元素。

有沒有其他人經歷過這個?

+0

那麼,他們是2種不同類型的瀏覽器.... – Neal 2011-05-18 18:01:42

+0

你做的是什麼邪惡/破 – Raynos 2011-05-18 18:02:23

+0

@馬特麥當勞?代碼中不是很明顯嗎?他試圖修剪字段firstname和lastname中的值,然後將firstName的文本顏色設置爲紅色。話雖如此,但當人們說,這是行不通的時候,我無法忍受... – 2011-05-18 18:16:49

回答

2
<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元素,如果你遮蓋了一個瀏覽器。

垃圾進入,垃​​圾出。

+0

是的,它在firefox中的工作原理很奇怪。我想他們'帳戶'。 – 2011-05-25 12:24:06

1

像Raynos說:你正在設置一個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";