2011-09-08 5 views
1

J'ai une page A qui ouvre une fenêtre javascript comme myWin = window.open (..). Maintenant, dans une autre page B dans le même domaine, lorsque l'utilisateur clique sur un lien, je veux vérifier si myWin est disponible, si oui alors mettre cette fenêtre en avant, sinon faire un nouveau myWin.Fenêtre contextuelle Javascript en tant que singleton

Le problème que j'ai est le fichier window.js dans les deux pages et window.js contient la ligne

var MyWin = null;

Dans Page Une portée, ma logique fonctionne et met la fenêtre à l'avant. Dans la page B cela fonctionne aussi bien. Cependant quand j'ouvre la fenêtre dans la page A, cliquez sur le lien dans la page B, il échoue. C'est comme si myWin revenait à zéro dans la portée de la page B. Comment puis-je surmonter ce problème? Pointers ??/

Répondre

1

La fenêtre contextuelle est créée par la page A et seule la page A contient une référence à cette fenêtre. Lorsque vous ouvrez la page B, il n'y a aucun moyen de passer la référence A de la page A à la page B. Cela ne peut pas être fait.

1

Vous souhaitez appeler window.open avec un URL vide, par ex.

var newWindow = window.open('', title, dimension); // title needs to be a constant 
if (newWindow.location.href && newWindow.location.href!='about:blank') { 
    // Window was already open and points to something 
    newWindow.focus(); 
} else { 
    // new window make it point to something 
    newWindow.location.href = 'http://yoursite'; 
} 

Cela suppose que la fenêtre ouvre une fenêtre dans le même site que la page d'appel, car sinon vous pouvez rencontrer divers problèmes d'autorisations.

Questions connexes