이 프로젝트에서는 종종 iframes를 동적으로 추가 한 다음 추가 된 iframes에서 관련 작업을 수행해야합니다. 때로는 Iframe이 매우 느리게로드되는 이유와 해결 방법을 만날 수 있습니까? 이 질문 으로이 기사를 배우고 답을 찾으십시오!
aaa.html
<html> <head> <title> aaa </title> </title> </head> <body> <iframe src = "bbb.html"name = bbb> </iframe> <input type = "button"value = "텍스트 제어 값 표시"onlert (bbb.document.all.txt.value) "> 언어 = "JavaScript"> Alert (bbb.document.all.txt.value); </script> </body> </html>
bbb.html
<html> <head> <title> bb </title> </head> <body> <입력 유형 = 텍스트 이름 = txt value = "guoguo"> </body> </html>
질문:
위의 AAA.html을 실행하고 코드가 직접 입력되지 않았지만 버튼을 클릭하면 값이 생성 될 수 있습니다.
분석 :
페이지가로드되면 iframe을 만나면 Iframe을 만날 때 다음 컨텐츠를로드 한 다음 Iframe을로드하기 위해 돌아옵니다. 물론, iframe을 만나면 iframe을로드하기 위해 스레드를 열 수 있다는 것을 이해할 수 있습니다. 그러나 새로운 IO 작업을 포함하는 것이 시간이 많이 걸리므로 iframe의로드는 여전히 페이지 하단의 JS 코드 실행보다 늦어 지므로 위의 문제가 발생합니다.
해결책:
JS 코드에 지연을 추가하십시오 (특정 지연은 개인 경험을 기반으로 할 수 있음)를 통해 iframe의 객체를 정상적으로 얻을 수 있습니다.
<script language = "javaScript"> settimeout ( "alert (bbb.document.all.txt.value)", 1500); </script>
결론 : Iframe이 페이지에 포함되면 JS를 통해 iframe에서 객체를 작동하려면 작동하기 전에 iframe이로드 될 때까지 기다려야합니다. 그렇지 않으면 원하는 객체를 얻지 못할 것입니다.
위는 편집자가 소개 한 JS Iframe의 로딩을 느리게하는 솔루션입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 동시에 Wulin.com 웹 사이트에 대한 귀하의 지원에 대단히 감사합니다!