2009-10-22 4 views
1

IE7에서 window.open으로 열린 자식 창은 window.close()를 사용하여 닫을 수 있지만 < a 열린 창은 href = ... target = _blank>는 자식 창이 자신을 닫으려고하면 보안 경고를 표시합니다.window.close()에 보안 경고가 표시되는지 알면

내 응용 프로그램에서 내 자식 창이 열리는 것을 알 수 없으며 window.close()를 사용할 수 있는지 여부를 자녀의 자바 스크립트 코드에서 알아야합니다. 방법이 있습니까? 질문을하는 또 다른 방법은 - window.open을 통해 열린 윈도우와 target = _blank를 통해 열린 윈도우를 구별하는 방법이 IE에 존재 하는가?

window.opener를 확인해 보았지만 두 경우 모두 값이 있으므로 두 경우를 구분할 수 없습니다.

답변

0

출처 : Close window without the prompt message in IE7이 위의 페이지에 따라 프롬프트를 방지하는 방법입니다

:

function WinClose(){window.open('','_self','');window.close();}

<a href="#" onclick="WinClose();return false;">Close</a>

이것이 귀하의 페이지에 대한 가능한 접근 방법입니까?

+0

이것은 작동합니다. 감사. 이제 IE8과 관련된 다른 문제가 있지만 다른 질문에 게시 할 것입니다. – giltayar

0

눈을 깜박이면 창에서 onunload 이벤트를 제거 할 수 있습니다.

+0

당신은 천재입니다! 나는 그 경고를 제거하는 것이 그만큼 간단하다고 생각하지 않았을 것입니다. 적어도 IE8에서 작동합니다. IE7에서도 확인합니다. – giltayar

+0

Nope. 내 잘못이야. 나는 아마 그것이 작동하기를 바랐지만, 그렇지 않았다. BTW, window.close 경고 발생 후 onunload 이벤트가 발생합니다. – giltayar

0

window.open 이벤트를 제어 할 수 있다면 새 창에 이름을 지정할 수 있습니다 (두 번째 매개 변수로 생각합니다). 그런 다음 window.close()를 적용하기 전에 해당 이름을 확인할 수 있습니다.

+0

예, 그게 효과가 있습니다. 오프닝을 제어 할 수 없다는 것 말고는! – giltayar

1

비교 window.opener를 시도하고 window.self

+0

두 경우 모두 window.opener가 올바른 것입니다. 즉,이 하위 창을 연 부모 창입니다. – giltayar

관련 문제