새 창을 팝업하는 페이지에 링크가 있는데 두 번째 창이로드되는 데 시간이 오래 걸리는 경우가 있습니다. 하위 창로드가 완료 될 때까지 부모 창에서 링크를 비활성화하려고합니다. 부모 창에 경고하기 위해 자식 창을 onload() 할 수 있음을 알고 있지만 자식을 망치고 싶지는 않습니다. 그래서 자식 창을 폴링하여 그 데이터가 있는지 여부를 확인하는 자바 스크립트가 있습니다. 작동하지 않습니다. 해당 페이지에 특정 요소가있을 수 있는지 확신 할 수 없기 때문에 newwindow.document.getelementbyid를 사용할 수 없습니다. 어딘가에있는 것이 있는지보고 싶습니다.하위 브라우저 창로드가 완료되었는지 어떻게 확인할 수 있습니까?
답변
body 태그를 가져 와서 아이가 있는지 검사 할 수 있습니다. 그럴 경우 페이지가로드되거나 닫힙니다. IMO를 충분히 닫으십시오.
자녀의 URL이 동일한 도메인이 아닌 경우 아무 것도 할 수 없습니다. 그것은 XSS 취약점 일 것입니다.
그게 내가 찾고 있었던 일이다. 고마워. – stu
자식 창의로드 이벤트에 리스너를 추가하기 만하면됩니다. 여기 정말 기본적인 예제를
<html>
<head>
<script type="text/javascript">
onload = function()
{
document.getElementById('test').onclick = function(event)
{
event.preventDefault();
event.returnValue = false;
var link = event.target || event.src;
var childWin = window.open(link.href, 'child', 'width=400,height=300');
childWin.onload = function()
{
alert('child window loaded!');
}
}
}
</script>
</head>
<body>
<a href="test2.html" id="test">test</a>
</body>
</html>
주의 : 난 당신이 아이를로드하는 URL은 부모와 동일한 도메인에 속해있을 경우에만 작동하는지 당신에게 말할 것이다. 브라우저 보안 모델은 그렇게하지 못하게합니다.
아마 그런 식으로 onload를 설정해서는 안됩니다. 당신은 그곳에 있던 무엇이든지 무시하고 있습니다. 브라우저에 따라 attachEvent 또는 addEventListener를 사용하십시오. – geowa4
동의합니다 -이 간단한 예제의 완전한 추상화 프로세스를 수행하고 싶지 않거나 실제로 프로덕션 시스템에서 수행 할 작업을 jQuery와 같은 방식으로 수행하고 싶지 않습니다. –
"부모에게 경고하기 위해 자식 창을 onload() 할 수 있음을 알지만, 나는 아이를 혼란스럽게하고 싶지 않습니다."- 당신의 솔루션이 그가 원하는 것인지는 알 수 없습니다. 그러나, 나는 그것을하는 더 나은 방법을 확실히 동의합니다. – geowa4
- 1. 게시하기 전에 양식 DOM 변경이 완료되었는지 어떻게 확인할 수 있습니까?
- 2. iframe 내부에서 부모 페이지의로드가 완료되었는지 어떻게 확인할 수 있습니까?
- 3. 목록의 데이터 바인딩이 완료되었는지 어떻게 확인할 수 있습니까? (wp7)
- 4. 브라우저 용 AJAX를 어떻게 확인할 수 있습니까?
- 5. 부스트 스레드가 완료되었는지 어떻게 알 수 있습니까?
- 6. 브라우저 창/탭에 포커스가 있는지 여부를 어떻게 확인할 수 있습니까?
- 7. 브라우저 창에 포커스가 있는지 여부를 어떻게 확인할 수 있습니까?
- 8. Android에서 실행중인 앱을 어떻게 확인할 수 있습니까?
- 9. 문자열이 특정 하위 문자열로 끝나는 지 어떻게 확인할 수 있습니까?
- 10. JEditorPane/TextPane 문서 또는 페이지의로드가 완료되었는지 어떻게 알 수 있습니까?
- 11. PHP S3 클래스 putObjectFile() 프로세스가 완료되었는지 어떻게 알 수 있습니까?
- 12. 어떻게 확인할 수 있습니다
- 13. URL 리디렉션을 어떻게 확인할 수 있습니까?
- 14. Android에서 위도, 경도를 어떻게 확인할 수 있습니까?
- 15. 링크를 이미 클릭했는지 어떻게 확인할 수 있습니까?
- 16. DES 키의 패리티를 어떻게 확인할 수 있습니까?
- 17. 파일이 있는지 어떻게 확인할 수 있습니까?
- 18. 변수가 있는지 어떻게 확인할 수 있습니까?
- 19. NSPasteboard가 업데이트되었는지 어떻게 확인할 수 있습니까?
- 20. 값이 숫자인지 어떻게 확인할 수 있습니까?
- 21. 실행중인 TinyMCE의 버전을 어떻게 확인할 수 있습니까?
- 22. JavaScript-Eventhandler가 설정되었는지 어떻게 확인할 수 있습니까?
- 23. GIT URI가 주어지면 어떻게 확인할 수 있습니까?
- 24. 구조체가 초기화되었는지 어떻게 확인할 수 있습니까?
- 25. DB 캐시가 최신인지 어떻게 확인할 수 있습니까?
- 26. 연락처 변경 사항을 어떻게 확인할 수 있습니까?
- 27. 내 svn 연결을 어떻게 확인할 수 있습니까?
- 28. 소켓 수신기를 어떻게 확인할 수 있습니까?
- 29. PayPal ID는 어떻게 확인할 수 있습니까?
- 30. 개체가 속한 클래스를 어떻게 확인할 수 있습니까?
하위 창에로드되는 항목은 무엇입니까? 자신의 웹 도메인의 컨텐츠 또는 외부 도메인의 컨텐츠입니까? – James