web-dev-qa-db-fra.com

Comment appeler la fonction de fenêtre parent à partir de la fenêtre enfant jquery?

j'ai juste besoin d'appeler la fonction dans la fenêtre parent pendant que l'utilisateur se concentre sur la fenêtre enfant. j'ai ce code dans ma fenêtre parent,

<html> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script language="Javascript" type="text/javascript">
        function CallParent()
        {
            alert(" Parent window Alert");
        }
    </script>
    <body> 
        <a href="javascript:void(0);" NAME="My Window Name" title=" My title here " onClick=window.open("child.html","Ratting","width=550,height=170,0,status=0,");>Click here to open the child window</a>
    </body> 
</html>

et le code ci-dessous est dans ma fenêtre enfant,

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script language="Javascript" type="text/javascript">
            jQuery(document).ready(function(){  
                window.opener.CallParent();
            });
        </script>
    </head>
    <body> 
        <h2>This is Child window</h2> 
    </body> 
</html>

so..dans ce cas, je supposais que CallParent() serait tiré juste après l'ouverture de la fenêtre enfant. mais cela ne semble pas fonctionner. quelqu'un peut-il me donner des conseils pour faire fonctionner ce script, ou une meilleure façon de le faire.

19
Natasha

Utilisez ceci

window.parent.CallParent();

au lieu de

window.opener.CallParent();

window.parent contient une référence au parent de la fenêtre ou du sous-cadre actuel.

Si une fenêtre n'a pas de parent, sa propriété parent est une référence à elle-même.

Lorsqu'une fenêtre est chargée dans un <iframe>, <object>, ou <frame>, son parent est la fenêtre avec l'élément incorporant la fenêtre.

Référence: https://developer.mozilla.org/en-US/docs/Web/API/Window/parent

15
Khalid

Essayez quelque chose comme ci-dessous:

parent.html

<html> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script language="Javascript" type="text/javascript">
        window.CallParent = function() {
            alert(" Parent window Alert");
        }
    </script>
    <body> 
        <a href="javascript:void(0);" NAME="My Window Name" title=" My title here " onClick=window.open("child.html","Ratting","width=550,height=170,0,status=0,");>Click here to open the child window</a>
    </body> 
</html>

child.html

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script language="Javascript" type="text/javascript">
            jQuery(document).ready(function(){  
                opener.CallParent();
            });
        </script>
    </head>
    <body> 
        <h2>This is Child window</h2> 
    </body> 
</html>

Vous ne devriez pas faire cela sur le parent, sinon opener.CallParent () ne fonctionnera pas, faisant window.CallParent rend CallParent disponible comme portée de fenêtre:

function CallParent() {
  alert(" Parent window Alert");
}

Et puis vous pouvez simplement appeler opener.CallParent(); pas window.opener.CallParent();.

12
deepakb

J'ai utilisé le code suivant parent.html

<html> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script language="Javascript" type="text/javascript">
        function CallParent()
        {
            alert(" Parent window Alert");
        }
    </script>
    <body> 
        <a href="javascript:void(0);" NAME="My Window Name" title=" My title here " onClick=window.open("child.html","Ratting","width=550,height=170,0,status=0,");>Click here to open the child window</a>
    </body> 
</html>

child.html

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script language="Javascript" type="text/javascript">
           window.opener.CallParent();
        </script>
    </head>
    <body> 
        <h2>This is Child window</h2> 
    </body> 
</html>
1
Amey P Naik