Pourquoi ne pas IE8 poignée iframe onload événements?

Exemple de code:

<!DOCTYPE html>
<html>
<head>
<title></title>
<script>
function on_iframe_load() {
    document.getElementById('iframe_a').onload = function() {
        alert('Thanks for the visit!');
    };
}
</script>
</head>
<body>
<iframe name="iframe_a" id="iframe_a"></iframe>
<a href="http://www.example.com/" target="iframe_a" onclick="on_iframe_load();">Go!</a>
</body>
</html>

Il fonctionne dans tous les principaux navigateurs sans problème, mais IE8 (et probablement les versions antérieures) ne le comprennent pas.

Mise à jour: Juste venu avec une solution, mais je ne sais pas si c'est à droite de codage. Veuillez consulter:

<!DOCTYPE html>
<html>

    <head>
        <title></title>
        <script>
            var clicked = false;

            function activate() {
                clicked = true;
            }

            function pop() {
                if (clicked) {
                    alert('Thanks for the visit!');
                };
            }
        </script>
    </head>

    <body>
        <iframe name="iframe_a" onload="pop();"></iframe>
        <a href="http://www.example.com/" target="iframe_a" onclick="activate();">Go!</a>

    </body>

</html>
  • C'était peut-être déjà chargé?
  • Que voulez-vous dire? Le message d'alerte ne doit apparaître lorsque vous cliquez sur le lien, pas sur le chargement initial de la page.
  • J'ai laissé tomber votre code directement dans JSFiddle.net désactivé les bibliothèques. Ensemble IE9 pour travailler dans IE8 mode, et votre exemple fonctionne comme vous le souhaitez. Est-ce un "échantillon" de code que de s'opposer à un réel problème de code?( Je sais ie9 dans ie8 mode n'est pas un test exact)
  • Non, c'est le vrai code que j'ai essayé en réel IE8, pas dans un émulateur.
  • Yep juste essayé, si t 'fail' dans un véritable ie8, je peux le faire fonctionner à l'aide de onreadystatechanged événement...
  • Je ne pense pas que l'ajout d'indicateur pour le "clic" est une solution fiable. Vous pouvez essayer discrète façon de coder en javascript (regarde mon édité réponse). À l'aide de attachEvent pour IE et addEventListener pour les autres navigateurs résoudre votre problème.

InformationsquelleAutor Mori | 2012-10-16