un.html
<nom du formulaire="form1" méthode="post" action="">
<a href="javascript:void(null)" class="add" onClick="open('b.html','','resizing=1,scrollbars=1,status=no,toolbar=no,menu= no,width=500,height=400,left=150,top=50')">Augmenter</a>
<input type="text" name="text1">
</form>
b.html
<langage de script="Javascript" type="text/javascript">
fonction returnValue()
{
window.opener.document.all.text1.value=document.getElementById("returnText").value;
window.close();
}
</script>
<input type="button" name="Soumettre" value="Soumettre" onclick="returnValue();">
<input name="returnText" type="text" id="returnText">
</p>
Supplément : Utilisation de window.opener
En usage général, window.opener n'est utilisé que pour résoudre le problème de l'absence de fenêtre contextuelle lors de la fermeture de la fenêtre, et sa compréhension plus profonde est généralement moins bien comprise. En fait, window.opener fait référence à la fenêtre qui appelle la méthode window.open.
Il est principalement utilisé pour résoudre des soumissions partielles au travail. Ce type d'opération inter-pages est très utile pour le travail.
Si vous ouvrez une page dans la fenêtre principale et souhaitez que la fenêtre principale soit actualisée, utilisez ceci. Le window.opener qui ouvre la page est équivalent à la fenêtre de la fenêtre principale.
Pour actualiser la fenêtre principale, vous pouvez utiliser
window.opener.location.reload();
Si vous utilisez un répertoire virtuel : tel que struts *.do vous demandera de réessayer, vous pouvez le remplacer par window.opener.yourformname.submit()
Ce sera bien
2〉
Il y a une situation dans l'application,
Ouvrez la fenêtre B dans la fenêtre A, fermez la fenêtre B après avoir terminé les opérations dans la fenêtre B et actualisez automatiquement la fenêtre A en même temps
fonction closeWin(){
hasClosed = vrai ;
window.opener.location="javascript:reloadPage();";
window.close();
}
fonction window.onbeforeunload(){
si(!hasClosed){
window.opener.location="javascript:reloadPage();";
}
}
</script>
Le code ci-dessus provoquera une erreur lors de la fermeture de la fenêtre B, indiquant que l'objet est manquant. Le code correct est le suivant :
fonction closeWin(){
hasClosed = vrai ;
window.opener.location="javascript:reloadPage();";
window.opener=null ;
window.close();
}
fonction window.onbeforeunload(){
if(!hasClosed){//Si la méthode closeWin a été exécutée, cette méthode ne sera pas exécutée.
window.opener.location="javascript:reloadPage();";
}
}
</script>
La méthode reloadPage est la suivante :
fonction rechargePage() {
histoire.go(0);
document.execCommand("rafraîchir")
document.emplacement = document.emplacement;
document.location.reload();
}
PS : Puisque nous devons prendre en charge la fermeture normale et la fermeture forcée des fenêtres pour capturer les événements, nous utilisons la variable globale hasClosed.
===============================================
De plus, lorsque la fenêtre parent est un frame, des problèmes peuvent survenir lors du rafraîchissement de la fenêtre parent :
La page ne peut pas être actualisée sans renvoyer les informations.
Modifié ultérieurement comme suit :
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
Il n'est pas nécessaire d'exécuter la méthode reload() intégrée. Attention à ne pas ajouter cette phrase superflue :
window.opener.parent.document.frames.item('mainFrame').location.reload();
=================================================== ======================================
Enfin, afin de prendre en charge l'actualisation simultanée de la fenêtre parent normale et de la fenêtre parent frame, le code est le suivant :
fonction closeWin() {
hasClosed = vrai ;
<%if(null != cadre){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}autre{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
//window.opener.top.mainFrame.location="javascript:reloadPage();";
//self.opener.frames.mainFrame.location.reload(true);
fenêtre.opener = null ;
window.close();
}
fonction window.onbeforeunload(){
si (!hasClosed) {
<%if(null != cadre){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}autre{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
fenêtre.opener = null ;
}
}
Utilisation de window.opener
window.opener renvoie une référence à la fenêtre qui a créé la fenêtre actuelle. Par exemple, si vous cliquez sur un lien sur a.htm pour ouvrir b.htm, nous prévoyons de saisir une valeur sur b.htm et de l'attribuer à a. htm. Dans une zone de texte avec un identifiant de "nom", il peut être écrit comme :
window.opener.document.getElementById("name").value = "Données d'entrée";
Je n'ai pas une bonne compréhension de window.opener en javascript.
Pourquoi ne peut-il pas être utilisé dans un cadre ? Pourquoi la fenêtre parent d'une fenêtre pop-up ne peut-elle pas se trouver sur une page à l'intérieur du cadre ? Alors comment faire fonctionner la fenêtre parent dans le frame via une fenêtre pop-up ?
opener.parent.frames['frameName'].document.all.input1.value essayez ceci :)
Si vous souhaitez remplacer la page du cadre par d'autres pages du même cadre ou la page du cadre parent, utilisez parent.
window.opener fait référence à la page parent de la page ouverte par window.open.
L'objet window.frames peut référencer des pages dans une iframe ou une page dans un frameset.
Cela peut être fait
window.frames[0].document.getElementById('xx');
Cela peut être fait
window.frames[0].document.body.innerHTML;
frm = window.parent.window.frames['uploadFrame'];
frmDocument = frm.document;
frm.sb(3); //sb est une fonction dans la page uploadFrame
Pour Firefox
Si vous rencontrez une erreur : parent.document.frames n'a pas de PRperties
Remplacez-le simplement par le code suivant. Ce code est compatible avec IE et ff. frm = window.parent.window.frames['uploadFrame'];
Notez qu'il existe des restrictions pour modifier la page dans le cadre de cette manière, c'est-à-dire qu'elle doit être sous le même domaine, sinon elle n'est pas accessible. Si elle se trouve sous le même domaine, mais que les noms de sous-domaines sont différents, ajoutez-le. une phrase aux fichiers js et html impliqués.
document.domain = xxx.com [remplissez votre nom de domaine ici]
document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
demander:
Dans la fenêtre parent window.open() une fenêtre enfant. et définir une variable i.
Entrez une valeur j dans la sous-fenêtre puis window.opener.i=j;
Cela peut être transmis. Mais j'ai ajouté window.close(); à la fin de la sous-fenêtre et la valeur ne peut pas être transmise.
S'il vous plaît dites-moi s'il existe un moyen de résoudre ce problème. Permettez-moi de transmettre la valeur avant de fermer la fenêtre enfant.
Le code est le suivant :
Fenêtre parent : parent.jsp
<script>
var je;
window.open('<%=contextPath%>/usermanage/newscontrol/cd.jsp);
</script>
<input type="bouton" onclick="alerte(i)">
Sous-fenêtre : cd.jsp
<script>
fonction subm(){
window.opener.i=5;
window.close();
}
</script>
<input type="bouton" onclick="subm()">
Meilleure réponse, vous pouvez en mettre une dans la fenêtre parent
<input id="fromChild" type="hidden" />
<type d'entrée="bouton"
onclick="alert(document.getElementById('fromChild').value)">
Dans la sous-fenêtre :
fonction subm(){
window.opener.document.getElementById('fromChild').value=5;
window.close();
}
Cela peut être fait
<tête>
<langage de script=javascript>
fonction windowclose()
{ window.opener=null ;
window.close();
}
</script>
</tête>
<corps>
<input id="Button1" type="bouton" value="bouton" onclick="windowclose()" />
</corps>
-