本贴将不定期更新,将集合JavaScript使用中常见的问题。
约定:浏览器名称IE/FF(通指Windows平台上的IE、FF)、IE5.5+/FF2+(后面的数字表示版本,甚至可以有更详细的版本信息)
目前只测试IE和FF,其他浏览器不在测试范围内,如果我只提及IE的,则说明在IE中有问题,而在FF中没有问题。
- IE中Class不能跨窗口引用,即在父窗口定义的SomeClass不能在子窗口中实例化,如new opener.SomeClass()。请注意在这里我没有提到frame的情况,因为我还没有时间测试,如果哪位有时间测试请告诉我结果。
- IE中delete操作只能删除JavaScript或自定义对象的属性,而不能删除HTML Element对象的属性,如果想删除Element的属性,请使用removeAttribute()方法。
- IE中delete操作只能删除非var定义的变量。
- IE中如果在一个窗口引用一个对象,如果这个对象是在其他窗口建立的,但是那个窗口已经关闭了,那么对这个对象的引用将会出错。
如在窗口A中
opener.someClassObj = new SomeClass();
window.close();
窗口B中
typeof someClassObj 结果是 'object', 但是实际引用该对象却会出错。