IFRAME 読み込み完了時にコールバックを実行する
IFRAME を使用する場合、読み込みプロセスの完了後にコールバックを実行することが重要な要件となる場合があります。 。ただし、このタスクは、特に IFRAME のコンテンツを制御できない場合に困難になる可能性があります。
この問題に対処するには、IFRAME の作成を変更し、タイムアウト メカニズムを組み込む手法を採用できます。プログラムで IFRAME を作成すると、IFRAME にイベント リスナーを追加できるようになります。次のコードは、これを実現する方法を示しています。
$(iFrameObj).load(function() {
document.body.removeChild(iFrameObj);
setTimeout(function() {
callback(iFrameObj.innerHTML);
}, 50);
});
このコード スニペットで示されているように、「load」イベント リスナーは、作成後に IFRAME にアタッチされます。ロードが完了すると、IFRAME は DOM から削除され、IFRAME が存在しなくなった後にコールバックが確実に実行されるように、短いタイムアウトが導入されます。このタイムアウト バッファは、ブラウザの動作における潜在的な不一致を考慮しています。
この方法では、IFRAME の URL がドメイン内にあることを前提としていることに注意してください。クロスサイトリクエストの場合、ブラウザのセキュリティ対策により IFRAME のコンテンツへのアクセスが制限されるため、別のアプローチが必要になる場合があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3