我已将我的错误缩小到以下一组在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
任何想法都可以获得谷歌浏览器中的属性。
感谢。
答案 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'.
这样,变量只能在函数范围内可见。