iframe父子ウィンドウ間jsメソッド呼び出し

6535 ワード

window.parentとwindow.openerの違いjavascriptがメインウィンドウを呼び出す方法
1:   window.parentはiframeページから親ページオブジェクトを呼び出します.
例:
a.
<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>
 
もし私達はb.httmの中でa.httmの中のusernameテキストボックスに対して値を割り当てる必要があるならば、多くのアップロード機能のように、アップロード機能ページはIframaeの中で、アップロードが成功したらアップロード後のパスを親ページのテキストボックスに入れます.
私たちはb.htmlに書くべきです.
 
 
<script type="text/javascript">
    var _parentWin = window.parent ;
    _parentWin.form1.username.value = "xxxx" ;
</script>
インスタンスアドレス:  
http://www.cnspry.cn/blog/attachments/window.parent例/a.
ソース:
1.a.
 
<>>

ホームページ
<スクリプト>
//*IFrameサブウィンドウをテストするために親ウィンドウのグローバル変数を呼び出して追加する試験変数*/
var parentVairous=「親ウィンドウのグローバル変数をテストするために追加されたテスト変数」
function parent InvokeIFrame()
{
var iframeTest=document.frameTest、/document.getElement ById(「iframeTest」)を使用しても良いです.
alert(iframeTest.document.body.innerHTML);
alert(iframeTest.iFraameVair)
)


<body>
<form name=「form 1」id=「form 1」
   
   
<iframe src=“b.html”width='100%id='iframeTest'


1.b.
 
<>>
     <ヘッド>
        
                 /** 親フォームをテストするためにIrameサブフォームの大域関数を呼び出して追加したサブウィンドウの大域関数*/
         var iFraameVair=「親フォームをテストしてIrameサブフォームの大域関数を呼び出します.」
        
         function UpdatePart()
         {
             var_parent Win=window.parent;
             _parent Win.form 1.username.value="xxxxx"
         }
        
         function child InvokePart()
         {
         var parentVairous=window.parent.window.parentVairous;
         alert(parent Vairous);
         }
      
   
<body>
    
        

 


        

                               name=「button」
                   id=「button」
                   value=「ホームページのUserName内容を更新する」
                   onclick=「UpdatePart()」
                        name="button 2"
            id=「button 2」
            value=「Irameサブウィンドウをテストして親ウィンドウのグローバル変数を呼び出します」
            onclick=「child InvokePart()」/>
        


        

 


    

 
ps:ドメインをまたいでは取得できません.例えば、iframeのsrcは'です.http://www.xxx.ccc/いけません
执行iframe中的javascript方法
Dcument.getElemenntById(

iframeId

)contentwindow.functionName();
 
 
2:   window.openerはwindow.openが開いているサブページです.親ページのオブジェクトを呼び出します.
インスタンスアドレス:  
http://www.cnspry.cn/blog/attachments/window.opener例/a.
ソース:
2.a.
 
<>>

     ホームページ
         /** Irameサブウィンドウをテストするために親ウィンドウのグローバル変数を呼び出して追加した試験変数*/ 
     var parentVairous=「親ウィンドウのグローバル変数をテストするために追加されたテスト変数」
    
    /**
      *  Irame(IFrameはidがあります.window.open()はIrameの親子の窓口のパターンとは違います.)
      *  Windows.openを通じて新しいウィンドウを開くときは、新しいウィンドウのオブジェクトが必要です.
      *  もちろん、まずサブウィンドウをはじかせてから、サブウィンドウの変数を呼び出すことができます.
      */
     var OpenWindow
    
     function openSubWin()
     {
         OpenWindow=window.open('b]、'newwindow'、'height=1024、width=1300、top=0、left=0、toolbar=no、menubar=yes、scrollbars=yes、resizable=yes、location=no、status=no.
     }
     function parent InvokeChild() 
     { 
         if(OpenWindow)//もちろん、サブウィンドウからはじき出さなければ、サブウィンドウの変数を呼び出しられません.        
         {
               alert(OpenWindow.iFrame eVair);
         }
     }
    

<body>
           
                   

2.b.
 
<>>
    <ヘッド>
        サブページ
                /** 親フォームをテストするためにIrameサブフォームの大域関数を呼び出して追加したサブウィンドウの大域関数*/ 
         var iFraameVair=「親フォームをテストしてIrameサブフォームの大域関数を呼び出します.」
         function UpdatePart()
         {
              var_parent Win=window.opener;
              _parent Win.form 1.username.value="xxxxx"
         }
         function child InvokePart() 
         { 
              var parentVairous=window.opener.window.parentVairous; 
              alert(parent Vairous);    
         }
       
   
<body>
<form name=「form 1」id=「form 1」

 


<p align=「センター」>
                   onclick=「UpdatePart()」.
               name=「button」
               id=「button」
               value=「ホームページのUserName内容を更新する」
               name="button 2" 
           id=「button 2」 
           value=「Irameサブウィンドウをテストして親ウィンドウのグローバル変数を呼び出します」 
           onclick=「child InvokePart()」/> 


 




hanjsの注意を経て、確かに注意しなければならないのは、モダリティウィンドウのサブウィンドウは、親ウィンドウのページの内容を変更することができませんでした.例えば、修正:OpenWindow=window.open(''b'、'newwindow'、'height=1024、width=1300、top=0、left=0、toolballower=no=meyers=no=ballables===balles===balles;OpenWindow=window.show ModalDialog(「b」)、「newwindow」、「dialogHeight:100 px、センター:yes、resizable:no、status:no」)、サブウィンドウの中で親のウィンドウの内容を修正したい時、「○○」をイジェクトします.