La détection des DOM Prêt de l'État Dans une iFrame (jQuery)

J'ai un script en cours d'exécution dans un document qui peut ou peut ne pas être imbriqué dans un iframe. J'ai réglé le problème de la détection de la imbriqués, mais je ne peux pas comprendre comment détecter l'état de disponibilité du DOM quand c'est une iframe.

Voici ce que j'ai déjà:

if (window.self !== window.top) {
    //is nested
    //DOM ready test here
        //execute code here
} else {
    //is not nested
    $(document).ready(function() {
        //execute code here
    });
}

J'ai déjà lu ce post, mais je ne vois pas la réponse à ma question précise. J'ai peut-être mal à comprendre les solutions de y, alors n'hésitez pas à me corriger.


EDIT:
Cela semble être une Fancybox question. Ce code:

alert(document.getElementById('username').className);
document.getElementById('username').focus();

Je vois une alerte avec la valeur correcte, mais la forme de l'élément de ne pas recevoir le focus. Cela me dit que ce n'est pas un problème de détection de la DOM est prêt de l'état. Le script d'origine j'ai essayé d'utiliser ce:

$(document).ready(function() {
    $('input.focus:last').focus();
});

EDIT 2/SOLUTION:
J'ai dû recourir à une Fancybox solution spécifique, car il semble être une Fancybox problème spécifique. J'ai ajouté cette ligne dans la configuration de ces Fancybox iframed formes:

'onComplete':function(){$('input.focus:last').focus();}
  • Si vous utilisez la fonction prête aussi quand elle est imbriquée il devrait fonctionner...
  • $(document).ready(function() ne fonctionne pas dans mon iframe. Cette iframe est généré dynamiquement par Fancybox. Je voudrais une solution qui n'est pas spécifique à Fancybox bien.
InformationsquelleAutor Sonny | 2010-02-01