Erreur sur un window.open lors du deuxième appel
J'ai un problème bizarre sur un window.open.
J'ai une page html qui a un bouton qui ouvre une popup et qui écrit le contenu d'un div dans la popup.
Ma popup a une action de pop-in, ce qui permet de recopier le contenu du div dans la page principale et ensuite je ferme la popup.
(Principe de Gmail Talk)
Le principe marche mais qu'une seule fois. Lorsque je re-clique sur l'action de la fenêtre principale pour ouvrir une popup alors j'ai cette erreur :
Citation:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame ::
http://localhost:8080/Test/popup/pop...e/popupAjax.js :: pop_out :: line 6" data: no]
Line 0
voici mon javascript
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
var divName = "divPopup";
function pop_out() {
var properties="width=400,height=400,top=110,left=100,screenY=50,screenX=100,resizable=yes,scrollbars=yes,location=no";
var newWindow = window.open("templatePopup.html", "", properties);
setTimeout(function(){
var divDest = newWindow.document.getElementById(divName);
var divSrc = document.getElementById(divName);
copyChilds(divSrc, divDest);
}, 500);
}
function copyChilds(divSrc, divDest) {
// suppression
while (divDest.childNodes.length > 0) {
divDest.removeChild(divDest.firstChild);
}
// copie
for(i = 0; i < divSrc.childNodes.length; i++) {
divDest.appendChild(divSrc.childNodes[i].cloneNode(true));
}
// suppression
while (divSrc.childNodes.length > 0) {
divSrc.removeChild(divSrc.firstChild);
}
}
function pop_in() {
var divDest = parent.window.opener.document.getElementById(divName);
var divSrc = document.getElementById(divName);
copyChilds(divSrc, divDest);
window.close();
} |
Quelqu'un aurait une idée ?
Merci d'avance.