Heim >Web-Frontend >Front-End-Fragen und Antworten >Welche Methoden gibt es zum Aufrufen des übergeordneten Fensters in Javascript?

Welche Methoden gibt es zum Aufrufen des übergeordneten Fensters in Javascript?

青灯夜游
青灯夜游Original
2021-06-23 15:13:483290Durchsuche

So rufen Sie das übergeordnete Fenster mit JavaScript auf: 1. Verwenden Sie die Anweisung „window.parent“, um das übergeordnete Seitenobjekt in der Iframe-Seite aufzurufen. 2. Verwenden Sie die Anweisung „window.opener“, um die untergeordnete Seite aufzurufen, die von „geöffnet“ wird. window.open" Rufen Sie das übergeordnete Seitenobjekt auf.

Welche Methoden gibt es zum Aufrufen des übergeordneten Fensters in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Welche Methoden gibt es für JavaScript, um das übergeordnete Fenster (übergeordnete Seite) aufzurufen?

1. window.parent ist die Iframe-Seite, die das übergeordnete Seitenobjekt aufruft Wenn wir in b.htm müssen, müssen Sie dem Benutzernamen-Textfeld in a.htm einen Wert zuweisen, genau wie bei vielen Upload-Funktionen. Nachdem der Upload erfolgreich war, geben Sie den hochgeladenen Pfad ein in das Textfeld der übergeordneten Seite

Wir sollten in b sein. Schreiben Sie

<html>  
    <head><title>父页面</title></head>  
<body>  
    <form name="form1" id="form1">  
         <input type="text" name="username" id="username"/>  
    </form>  
    <iframe src="b.html" width=100%></iframe>  
</body>  
</html>

in den .html-Quellcode:


a.html

<script type="text/javascript">  
    var _parentWin = window.parent ;  
    _parentWin.form1.username.value = "xxxx" ;  
</script>

b.html

<html>  
<head>  
    <title>主页面</title>  
    <script>  
        /** 为测试IFrame子窗口调用父窗口的全局变量而添加的测试变量 */  
        var parentVairous = "为测试IFrame子窗口调用父窗口的全局变量而添加的测试变量";  
        function parentInvokeIFrame()  
        {  
                var iframeTest = document.frames["iframeTest"]; //使用document.getElementById("iframeTest");同样可以  
                alert(iframeTest.document.body.innerHTML);  
                alert(iframeTest.iFrameVair);  
        }  
    </script>  
</head>  
<body>  
<form name="form1" id="form1">  
    <input type="text" name="username" id="username"/>  
    <input type = "button" value = "父窗口调用IFrame子窗口中的内容" onclick = &#39;parentInvokeIFrame()&#39;/>  
</form>  
<iframe src="b.html" width = &#39;100%&#39; id = &#39;iframeTest&#39;></iframe>  
</body>  
</html>

ps: kann nicht domänenübergreifend abgerufen werden, z Beispiel: Die Quelle von iframe ist „http://www.xxx.ccc/“. Das ist nicht möglich

2. window.opener ist eine untergeordnete Seite, die von window.open geöffnet wird und das übergeordnete Seitenobjekt

Source aufruft Code:

a.html

<html>  
     <head>  
         <title></title>  
         <script type="text/javascript">  
            /** 为测试父窗体调用IFrame子窗体的全局函数而添加的子窗口全局函数 */  
         var iFrameVair = "测试父窗体调用IFrame子窗体的全局函数";  
           
         function UpdateParent()  
         {  
             var _parentWin = window.parent ;  
             _parentWin.form1.username.value = "xxxx" ;  
         }  
           
         function childInvokeParent()  
         {  
                var parentVairous = window.parent.window.parentVairous;  
                alert(parentVairous);     
         }  
       </script>  
    </head>  
<body>  
     <form name="form1" id="form1">  
         <p>  </p>  
         <p align="center">  
            <input type = "button"   
                   name = "button"   
                   id = "button"   
                   value = "更新主页面的UserName内容"   
                   onclick = "UpdateParent()">  
            <input type = "button"  
                         name = "button2"  
                         id = "button2"  
                         value = "测试IFrame子窗口调用父窗口的全局变量"  
                         onclick = "childInvokeParent();"/>  
         </p>  
         <p>  </p>  
     </form>  
</body>  
</html>

b.html

<html>  
<head>  
     <title>主页面</title>  
     <script type="text/javascript">  
     /** 为测试IFrame子窗口调用父窗口的全局变量而添加的测试变量 */    
     var parentVairous = "为测试IFrame子窗口调用父窗口的全局变量而添加的测试变量";   
       
     /**   
      *  因为不同于IFrame(IFrame有id,window.open()与IFrame的父子窗口的模式不同),  
      *  所以当是通过window.open()方法打开一个新窗口使, 必须有一个新窗口的对象   
      *  当然必须先让子窗口弹出来, 才能调用子窗口中的变量, 否则抛出异常  
      */  
     var OpenWindow;  
       
     function openSubWin()  
     {  
         OpenWindow = window.open(&#39;b.html&#39;, &#39;newwindow&#39;, &#39;height=1024, width=1300, top=0, left=0, toolbar=no, menubar=yes, scrollbars=yes,resizable=yes,location=no, status=no&#39;);  
     }  
     function parentInvokeChild()    
     {    
         if(OpenWindow)//当然必须先让子窗口弹出来, 才能调用子窗口中的变量, 否则抛出异常           
         {  
               alert(OpenWindow.iFrameVair);  
         }  
     }   
     </script>  
</head>  
<body>  
    <form name="form1" id="form1">  
        <input type="text" name="username" id="username"/>  
        <input type="button" value="弹出子页面" onclick = "openSubWin()">  
        <input type="button" value="测试调用弹出窗口中的全局变量" onclick = "parentInvokeChild()">  
    </form>  
</body>  
</html>

[Verwandte Empfehlungen:

Javascript-Lernprogramm

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Aufrufen des übergeordneten Fensters in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn