2008-12-17 8 views
1

Voici mon scénario:Modification de la fenêtre ouverte par la fonction "window.open()" de javascript

J'ai une page contenant plusieurs liens; chaque lien est destiné à ouvrir une autre fenêtre contenant un pdf. Le hic, c'est que je ne peux pas avoir cette fenêtre directement sur le PDF parce que je ne veux pas montrer à l'utilisateur final que le PDF est situé sur un autre domaine, et j'ai besoin de nommer le PDF différemment arriver.

Alors j'ai deux pages: L'un est vide et ne contient qu'une trame à utiliser pour afficher les pdfs:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
    <head> 
     <title>[PDF]</title> 
    </head> 
    <frameset> 
     <frame id="pdfFrame"> 
    </frameset> 
</html> 

Et sur la page avec les liens, j'ai la fonction suivante qui appelle cette page (nous appellerons la page ci-dessus « de pdf.html »):

function OpenWindow(pdfTitle, pdfLocation) 
{ 
    var myWindow = window.open("pdf.html", "", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=700,height=600"); 

    myWindow.document.title = pdfTitle; 
    myWindow.document.getElementById('pdfFrame').src = pdfLocation; 
} 

pour la plupart, cela semble bien fonctionner; cependant, à l'occasion, la fenêtre pop-up ne sera pas chargée avant les lignes ci-dessus qui configurent la source du titre/cadre, et elle va planter (ou ne pas charger correctement, au moins).

Ma question est la suivante: y a-t-il un moyen simple pour moi d'ajouter une sorte d'appel de blocage après l'ouverture de la fenêtre, pour attendre que nous soyons prêts à exécuter ce code?

Merci!

Répondre

3

Vous ne pouvez pas bloquer vraiment jusqu'à ce qu'il soit chargé, mais vous pouvez définir un événement dans le menu contextuel, comme ceci:

myWindow.onload = function() 
{ 
    document.title = pdfTitle; 
    document.getElementById('pdfFrame').src = pdfLocation; 
} 
+0

J'ai eu une idée similaire plus tôt et essayé la même chose; cependant, cela n'a pas fonctionné ... Je pense que cette fonction est créée dans la fenêtre parente après que l'enfant ait chargé – John

+0

Vous pouvez toujours l'interroger pour une variable ... – Greg

Questions connexes