2010-05-27 2 views
3

Dans mon application, j'utiliser une fonction javascript pour définir la balise src d'un iframe:HTML Pourquoi le contenu d'un Iframe est-il chargé deux fois?

function loadDocument(id, doc) { 
    $("#DocumentContent").show(); 
    $("#ButtonBox").show(); 

    // Clear dynamic menu items 
    $("#DynamicMenuContent").html(""); 
    $("#PageContent").html(""); 

    // Load document in frame 
    $("#iframeDocument").attr("src", 'ViewDoc.aspx?id=' + id + '&doc=' + doc + ''); 

    // Load menu items 
    $("#DynamicMenuContent").load("ShowButtons.aspx"); 

    // Set document title 
    $("#documentTitle").load("GetDocumentInfo.aspx?p=title"); 
} 

Quand j'ouvre Fiddler et déboguer cette page, je remarque que la page « ViewDoc.aspx » est appelé deux fois.

Lorsque je mets un alert() dans la fonction loadDocument, je reçois un seul message d'alerte. Dans ma page viewdoc.aspx, il n'y a pas d'instructions d'actualisation ou de redirection ou d'autres instructions qui actualisent la page.

Est-il possible que cela ait quelque chose à voir avec le navigateur? Est-ce le comportement du navigateur par défaut?

+0

fais-tu quoi que ce soit d'autre avec le nœud 'n de iFrameDocument', par exemple le déplacer dans le DOM? –

+0

Non, je ne bouge pas l'iframe. Cependant, certaines fonctions masquent et affichent l'iframe. Mais cela se produit uniquement sur les événements de clic – Martijn

+0

@Mart masquage et affichage devrait être correct tant qu'il utilise CSS. Seulement si vous supprimez un IFRAME du DOM et le réinsérez, je pense qu'au moins IE fera un rechargement. –

Répondre

0

la question est assez vieux, mais ....

avez-vous deux éléments avec id = DynamicMenuContent?

s'il y a une dans la page source et un dans l'iframe, ils peuvent tous deux être sélectionnés par $ (« # DynamicMenuContent »). Charge ...

si cela est vrai et on est un div et la une autre durée, vous pouvez changer à $ ("div # DynamicMenuContent") load(). ...

HTH