2016-10-25 2 views
0

는 다음 코드 상속했습니다window.onchange - 어떤 프로그램이 실행되며 삭제해도 안전합니까?

// if parent window is closed or changed, close popups 
window.onbeforeunload = function() { /* some cleanup stuff */ }; 
window.onchange = function() { /* same exact cleanup stuff */ }; 

window.onchange 라인이 일으키는 문제;
Chrome에서는 명확하지 않은 이유로 (바람직하지 않은 정리 결과로) 발생합니다. IE11에서는 작동하지 않습니다.

이 라인을 안전하게 제거 할 수 있습니까?

Mozilla guys 너무 많은 정보를 제공하지 않습니다 : 창에 전송 변경 이벤트에 대한

이벤트 핸들러를.

... 일반적으로 인터넷에 관해서는별로 말할 것도없는 것 같습니다.

정확히 무엇이 windows.onchange을 트리거할까요? 모든 주요 브라우저에서 작동합니까? (그렇지 않다면 삭제할 수 있다는 확신이 든다.)

+1

내 이해는 그 창은 onchange 이벤트가 없다는 것입니다. 나는 그것이 무엇을 일으키는 지 모르겠습니다. 내가 그것을 제거하고 기능을 테스트하려고합니다. 모든 것이 괜찮다고 가정하면 그것을 버리십시오. – user1289451

답변

1

폼 컨트롤이 변경되면 이벤트가 변경됩니다. 아래의 데모에서 무언가를 입력 한 다음 Tab을 누르면 컨트롤이 흐려지고 변경 이벤트가 트리거됩니다.

onchange = function (e) { console.log(e.target); }
<input>

이벤트 거품, 청취자 직접 입력에 부착하지 않아도되도록.


정리되고있는 것에 대해 제공되지 문맥은 유해// 필요한 경우에 유용 그래서 우리는 말할 수 없기 때문에, 귀하의 예제에서 "안전하게 제거"의 경우 말을하는 것은 불가능하다 모든 변경 이벤트 후에 정리를 수행하십시오.

관련 문제