Lecture recommandée:
Comment résoudre le problème du chargement lent de JS Iframe
Dans le projet, vous devez souvent ajouter dynamiquement IFRAMES, puis effectuer des opérations connexes sur les iframes ajoutés. Souvent, le code suivant a été exécuté avant l'ajout de l'IFRAME, donc certaines choses que vous écrivez ne sont pas du tout affichées. Pour le moment, nous devons nous demander si nous pouvons attendre que l'iframe soit chargé avant d'effectuer les opérations suivantes. Bien sûr, divers navigateurs l'ont considéré depuis longtemps pour nous, voir ci-dessous:
IE Browser
Chaque nœud Elem dans IE aura un événement OnreadyStateChange. Cet événement est déclenché chaque fois que le contenu Elem est envoyé pour changer. Par exemple, le contenu est chargé et chargé après le chargement du contenu. Le contenu est chargé avec succès sera déclenché. Cette fonction doit également être coordonnée avec ReadyState. Il s'agit d'une propriété appartenant à chaque Elem sur IE pour afficher l'état de chaque déclencheur.
// Ajoutez d'abord un onreadystatechangeiframe.attachevent ("OnReadyStateChange", function () {// Cet événement sera également déclenché lorsque le contenu ne sera pas chargé, nous devons donc juger l'état chargé. "chargé") {// Le code peut être exécuté ici et cela signifie que le chargement a été terminé avec succès // l'événement iframe.detachevent ("OnReadyStateChange", arguments.callee); // Ceci est la fonction de rappel}});Autres navigateurs (Firefox, opéra, chrome, etc.)
Sur d'autres navigateurs non IE, Firefox, Opera, Chrome et d'autres IFRames auront un événement Onload. Tant que cet événement est déclenché, cela signifie que le contenu du nom a été chargé.
iframe.adDeventListener ("Load", function () {// Le code peut être exécuté ici et cela signifie que la charge a été terminée avec succès. this.reMoveEventListener ("Load", arguments.call, false); // Ceci est la fonction de rappel}, false);Résumons
if (iframe.attachevent) {iframe.attachevent ("onreadystatechange", function () {// Cet événement sera également déclenché lorsque le contenu ne sera pas chargé, donc nous devons également juger l'état chargement (iframe.readystate === "complet" "loaded") {//The code can be executed here and it means that the loading has been completed successfully//The event iframe.detachEvent("onreadystatechange", arguments.callee);//This is the callback function}});}else{iframe.addEventListener("load", function() {//The code can be executed here and it means that the load has been terminé avec succès.Remarque: La fonction ci-dessus doit être placée après que l'iframe est annexe au corps, sinon il ne sera pas déclenché.
Le contenu ci-dessus est la méthode de JS pour déterminer si un iframe est chargé avec succès par l'éditeur. J'espère que ce sera utile à tous!