Maison > interface Web > js tutoriel > Méthode pour déterminer si l'iframe est chargé avec succès sur la base de JS (divers navigateurs)

Méthode pour déterminer si l'iframe est chargé avec succès sur la base de JS (divers navigateurs)

高洛峰
Libérer: 2017-01-12 11:09:42
original
1321 Les gens l'ont consulté

Lecture recommandée :

Comment résoudre le chargement lent de JS iFrame

Dans les projets, il est souvent nécessaire d'ajouter dynamiquement des iframes, puis d'effectuer des opérations associées sur les iframes ajoutées, mais souvent, les iframes n'ont pas encore été ajoutées. Eh bien, le code suivant a déjà été exécuté, donc certaines des choses que vous avez écrites ne sont pas affichées du tout. À ce stade, nous devons nous demander si nous pouvons attendre que l'iframe soit chargée avant d'effectuer des opérations ultérieures. Bien sûr, divers navigateurs ont déjà envisagé cela pour nous, voir ci-dessous :

c'est-à-dire le navigateur

Chaque nœud elem d'IE aura un événement onreadystatechange. Cet événement est déclenché à chaque fois que le contenu de l'élément change. Par exemple, le chargement se déclenchera lorsque le contenu est en cours de chargement, le chargement se déclenchera lorsque le contenu sera chargé et le processus complet se déclenchera lorsque le contenu sera chargé. le contenu est chargé avec succès. Trigger, cette fonction doit également coopérer avec readyState, qui est un attribut appartenant à chaque élément sur IE, et est utilisé pour vérifier l'état de chaque déclencheur.

//先为iframe 添加一个 onreadystatechange
iframe.attachEvent("onreadystatechange", function(){
//此事件在内容没有被载入时候也会被触发,所以我们要判断状态
//有时候会比较怪异 readyState状态会跳过 complete 所以我们loaded状态也要判断
if(iframe.readyState === "complete" || iframe.readyState == "loaded"){
//代码能执行到这里说明已经载入成功完毕了
//要清除掉事件
iframe.detachEvent( "onreadystatechange", arguments.callee);
//这里是回调函数
}
});
Copier après la connexion
Autres navigateurs (Firefox, Opera, Chrome, etc.)

Dans d'autres navigateurs non IE, les iframes tels que Firefox, Opera, Chrome, etc. auront un événement onload . Cet événement n'a besoin que lorsqu'il est déclenché, il indique que le contenu a été chargé.

iframe.addEventListener( "load", function(){
//代码能执行到这里说明已经载入成功完毕了
this.removeEventListener( "load", arguments.call, false);
//这里是回调函数
}, false);
Copier après la connexion
Pour résumer

if(iframe.attachEvent){
iframe.attachEvent("onreadystatechange", function() {
//此事件在内容没有被载入时候也会被触发,所以我们要判断状态
//有时候会比较怪异 readyState状态会跳过 complete 所以我们loaded状态也要判断
if (iframe.readyState === "complete" || iframe.readyState == "loaded") {
//代码能执行到这里说明已经载入成功完毕了
//要清除掉事件
iframe.detachEvent("onreadystatechange", arguments.callee);
//这里是回调函数
}
});
}else{
iframe.addEventListener("load", function() {
//代码能执行到这里说明已经载入成功完毕了
this.removeEventListener("load", arguments.call, false);
//这里是回调函数
}, false);
}
Copier après la connexion
Remarque : la fonction ci-dessus doit être placée dans l'iframe après que appendChild soit ajouté au corps, sinon elle ne sera pas déclenchée

Le contenu ci-dessus est petit. L'éditeur vous présente la méthode JS pour déterminer si l'iframe est chargée avec succès. J'espère que cela vous sera utile !

Pour plus d'articles sur les méthodes permettant de déterminer si une iframe est chargée avec succès sur la base de JS (divers navigateurs), veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal