Javascript Object.defineProperty不适用于窗口对象IE11
我正在尝试使用Object.defineProperty更改window.navigator.onLine的值。Javascript Object.defineProperty不适用于窗口对象IE11,javascript,object,window,internet-explorer-11,Javascript,Object,Window,Internet Explorer 11,我正在尝试使用Object.defineProperty更改window.navigator.onLine的值。 我运行的命令是: Object.defineProperty(window.navigator,“联机”{value:false,configurable:true}) 哪种方法有效: *边缘13 *歌剧40.0 *铬54.0 *火狐49.0 你知道为什么这不起作用吗?它说IE11应该支持这种方法。从它听起来像窗口.navigator.onLine是一种只读的。i、 e.如果您无法通
我运行的命令是:
Object.defineProperty(window.navigator,“联机”{value:false,configurable:true})代码>
哪种方法有效:
*边缘13
*歌剧40.0
*铬54.0
*火狐49.0
你知道为什么这不起作用吗?它说IE11应该支持这种方法。从它听起来像窗口.navigator.onLine
是一种只读的。i、 e.如果您无法通过直接设置值来覆盖它,那么您可能在做坏事
如果您这样做是为了测试某些行为,那么最好模拟navigator对象,而不是尝试更改只读
属性。(很抱歉,如果这是一个错误的假设,请随意提供更多的上下文:)我正在编写大致相同的内容,但您更快了:)我只想补充一点,它本身也应该是只读的。我正在尝试为单元测试更改此属性,模拟navigator对象似乎对我不起作用。因此,该属性在IE中是只读的?@ShaharKazaz根据规范,它是只读的。如果某些浏览器允许更改它,它们不会遵循该属性。@ShaharKazaz如果您需要模拟类似的内容,最好创建一个助手方法,然后再依次模拟。细节很详细。