권장 독서 :
JS Iframe의 느린 로딩 문제를 해결하는 방법
이 프로젝트에서는 종종 iframes를 동적으로 추가 한 다음 추가 된 iframes에서 관련 작업을 수행해야합니다. 종종 Iframe이 추가되기 전에 후속 코드가 실행되었으므로 작성한 내용은 전혀 표시되지 않습니다. 현재, 우리는 후속 작업을 수행하기 전에 iframe이로드 될 때까지 기다릴 수 있는지 고려해야합니다. 물론 다양한 브라우저가 오랫동안 우리를 위해 고려해 왔습니다. 다음을 참조하십시오.
즉, 브라우저
IE의 각 Elem 노드에는 oneadryStateChange 이벤트가 있습니다. 이 이벤트는 Elem 컨텐츠가 변경 될 때마다 트리거됩니다. 예를 들어, 컨텐츠가로드 된 후 컨텐츠가로드되고로드됩니다. 내용이 성공적으로로드됩니다. 이 기능은 또한 ReadyState와 조정되어야합니다. 이것은 각 트리거의 상태를보기 위해 즉, 각각의 elem이 소유 한 재산입니다.
// 먼저 oneadyStateChangeiframe.attacheVent ( "oneadyStateChange", function () {// 컨텐츠가로드되지 않으면 트리거됩니다. 따라서 상태를 판단해야하므로 때때로 우리는 이상하고 준비된 상태가 건너 뛸 수 있습니다. 따라서 (iframe.readystate === "|| readrame =="|| readystate == "| "로드") {// 코드는 여기에서 실행될 수 있으며로드가 성공적으로 완료되었음을 의미합니다. // 이벤트 iframe.detacheVent ( "on on on on readreadStateChange", arguments.callee); // 콜백 함수}});기타 브라우저 (Firefox, Opera, Chrome 등)
다른 비이 브라우저에서는 Firefox, Opera, Chrome 및 기타 Iframes가 Onload 이벤트가 있습니다. 이 이벤트가 트리거되는 한 이름 내용이로드되었음을 의미합니다.
iframe.adeventListener ( "load", function () {// 코드가 여기에서 실행될 수 있으며로드가 성공적으로 완료되었음을 의미합니다. this.removeEventListener ( "load", arguments.call, false); // 콜백 함수}, false);요약합시다
if (iframe.attachevent) {iframe.attachevent ( "on readreadStateChange", function () {// 컨텐츠가로드되지 않으면 트리거됩니다. 따라서 상태를 판단해야합니다. {// 코드는 여기서 실행될 수 있으며 로딩이 성공적으로 완료되었음을 의미합니다. // 이벤트 iframe.detachevent ( "on readreadstatechange", arguments.callee); // 콜백 함수}});} else {iframe.addeventListener ( "로드", 함수 () {//가로드 될 수 있습니다. this.removeEventListener ( "load", arguments.call, false); // 콜백 함수}, false);}참고 : 위의 기능은 Iframe이 신체에 부록 인 후에 배치해야합니다. 그렇지 않으면 트리거되지 않습니다.
위의 내용은 편집기가 IFRAME을 성공적으로로드하는지 여부를 결정하기위한 JS의 방법입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!