FireFox中的不同JavaScript对象文字行为&谷歌浏览器?

时间:2011-01-08 08:57:14

标签: javascript firefox google-chrome

我已将我的错误缩小到以下一组在Google Chrome中产生不同行为的代码:

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

Firefox输出:Hi 1 [object Object] 192 Hi 2

Chrome输出:Hi 1 [object Object] undefined嗨2

任何想法都可以获得谷歌浏览器中的属性。

感谢。

1 个答案:

答案 0 :(得分: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'.

这样,变量只能在函数范围内可见。