Lors de l'ouverture de la page Web, un débordement de pile s'affiche à la ligne : 0. J'ai fait une capture d'écran comme suit :
Après analyse, il a été constaté qu'il y avait un code similaire au suivant dans la page Web :
<img src="pic.gif" onerror="javascript:this.src='/noPic.gif';" />
Analyse : Portez une attention particulière à onerror Lorsque l'image n'existe pas, onerror sera déclenchée et onerror spécifie une image NoPic.gif pour img. C'est-à-dire que si l'image existe, pic.gif sera affiché, et si l'image n'existe pas, noPic.gif sera affiché. Mais voici le problème. Si noPic.gif n'existe pas, une erreur continuera à être déclenchée, provoquant une boucle, donc une erreur se produit.
Remarque : Si l'image existe mais que le réseau n'est pas fluide, une erreur peut également être déclenchée.
Solution : Premièrement : supprimez le code d'erreur ; ou remplacez le code d'erreur par autre chose ; ou assurez-vous que l'image dans l'erreur est suffisamment petite et existe.
Deuxième type :
<script type="text/javascript">
<!--
fonction nofind(){
var img=event.srcElement;
img.src="../../../sys/common/image/fileoperation/icon/default.gif";
img.onerror=null ; contrôle pour ne pas continuer à battre
}
// Lorsqu'il n'est pas trouvé, utilisez les événements pour les obtenir un par un
//-->
</script>
<td align="center"><img src="../../../sys/common/image/fileoperation/icon/${file.suffix }.gif" onerror="nofind();" >${file.name></td>
Le troisième type :
Utilisez deux <img />
<style type="text/css">
caché {
affichage : aucun ;
}
</style>
<img src="xxx.jpg" onerror="this.class='hidden';xx.class=''" />
<img src="xxx.jpg" />