2010-08-05 10 views
1

J'ai un iframe qui a un rapport en son sein. Ce que j'ai aussi, c'est une fonctionnalité permettant à l'utilisateur de détacher le rapport dans l'iframe et de l'ouvrir dans sa propre fenêtre, en utilisant l'appel window.open(). Mon problème est que lorsque j'appuie sur le bouton de détachement, tout le rapport initialement chargé dans l'iframe reprend les mouvements de réexécution de la requête et présente ainsi à l'utilisateur un écran blanc jusqu'à la fin du rapport. rend à nouveau. Y a-t-il une façon de ne pas relancer le rapport dans la fenêtre détachée ou de saisir une version en cache?Window.open fenêtre de rechargement

Merci.

Répondre

2

Si vous avez déjà le code HTML du côté client, vous pouvez l'écrire dans la fenêtre contextuelle sans aller au serveur.

var w = window.open(); 
    w.document.write("Text in new Window"); 

Cela va ouvrir une fenêtre et y écrire du texte. Tout ce que vous devez faire maintenant est d'obtenir le contenu de votre iframe et l'écrire dans la nouvelle fenêtre. Bingo :)

BTW IMO: L'ouverture de nouvelles fenêtres dans les navigateurs devrait être évitée autant que possible car de nombreux navigateurs le bloquent et la plupart des outils de test automatisés ne le supportent pas.

EDIT (en réponse au commentaire):

Voici un exemple de lecture et d'écriture à un iFrame en utilisant la bibliothèque JavaScript jQuery. Cela trouve fondamentalement les éléments iframe dans le document et lit et écrit le contenu à eux. Si vous n'utilisez pas une bibliothèque JavaScript, je vous recommande fortement d'apprendre et d'utiliser l'une d'entre elles.

BTW: Mon conseil sur les fenêtres contextuelles est également valable pour les iframes. Vous devriez éviter de les utiliser lorsque cela est possible.

+0

merci tarn - je me demandais si vous pouviez nous fournir quelques suggestions sur la façon de récupérer le contenu de mon iframe? – tonyf

+0

mise à jour réponse, pls accepter et voter si cela aide :) – tarn

+0

merci tarn - va essayer votre solution et revenir vers vous si cela vous convient. – tonyf

Questions connexes