2016-11-03 2 views
1

Object.defineProperty를 사용하여 window.navigator.onLine의 값을 변경하려고합니다.
내가 실행 명령은 다음과 같습니다Object.defineProperty가 윈도우 객체 IE11에서 작동하지 않습니다.

에 근무

Object.defineProperty(window.navigator, "onLine", {value: false, configurable: true});

:
* 에지 (13)
* 오페라 40.0
* 크롬 54.0
* 파이어 폭스 49.0

어떤 아이디어 왜 didn를 일하지 않니? 그것은 IE11이이 방법을 지원한다고 가정합니다.

답변

2

spec에서 window.navigator.onLinereadonly입니다. 즉 값을 직접 설정하여 재정의 할 수없는 경우 나쁜 일을하는 것일 수 있습니다.

일부 동작을 테스트하기 위해이 작업을 수행하는 경우 readonly 속성을 변경하는 대신 탐색기 개체를 조롱하는 것이 좋습니다. (나쁜 가정이라면 유감스럽게 생각합니다.)

+0

나는 글을 쓰는 과정에 있었지만 그보다 더 빠르다. 나는 그 글을 추가하고 싶다. window.navigator'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator) 자체도 읽기 전용으로되어 있습니다. – vlaz

+0

단위 테스트를 위해이 속성을 변경하려고하는데 탐색기 개체를 조롱하는 것이 제대로 작동하지 않는 것 같습니다. 그래서이 속성은 IE에서만 읽기 전용입니까? –

+0

@ShaharKazaz 그것은 사양에 따라 읽기 전용입니다. 일부 브라우저에서 변경을 허용하는 경우 해당 브라우저는이를 따르지 않습니다. – vlaz

관련 문제