2011-01-08 63 views
3

我有誤差縮小到以下的製造在谷歌瀏覽器不同的行爲代碼的組:FireFox和Google Chrome中的不同JavaScript對象字面行爲?

示例代碼:http://jnvxxx.appspot.com/rpc/static_server?key_=testjs.html

火狐輸出:您好1 [對象的對象] 192您好2

鉻輸出:嗨1 [對象對象] undefined嗨2

任何想法很熱,以獲得在谷歌瀏覽器中工作的屬性。

謝謝。

+0

你沒有在任何地方使用JSON,只是JavaScript對象文字。 – 2011-01-08 09:01:24

+0

@Matthew,對不起。其實我從json.dumps(python對象)獲取這個JavaScript文字..這就是爲什麼我把它放在第一位JSON解析錯誤任務。 – ramu 2011-01-08 09:18:41

回答

5

您正在訪問window.status屬性,該屬性用於控制狀態欄中的文本。參見:http://www.w3schools.com/jsref/prop_win_status.asp

顯然,必須首先在所有主流瀏覽器中打開此功能,因此顯然不同的瀏覽器在關閉時會執行不同的操作。 Chrome將狀態屬性的值更改爲string,因此它變成了一個隱含但熟悉的字符串"[object Object]",它沒有entry_count屬性。 Firefox在status屬性中完整保留該對象。

底線:window.status已被用於其他事情;爲您的變量使用不同的名稱。

編輯:

正如下面提到的,更好的方法做盡,這將是封裝它的功能範圍,只要你不打算反正在其他地方使用它:

(function() { 
    var myStatus = {...}; 
    // Do something with myStatus, preferably not document.write ;) 
}()); 

var a = typeof myStatus; // a === 'undefined'. 

這樣,變量將只在函數範圍內可見。

相關問題