悟心

          成功不是將來才有的,而是從決定去做的那一刻起,持續累積而成。 上人生的旅途罷。前途很遠,也很暗。然而不要怕。不怕的人的面前才有路。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            93 隨筆 :: 1 文章 :: 103 評論 :: 0 Trackbacks
          前些日子,一直奔波于這三種操作,想想以后會常用,干脆整理下來,供自己以后查看。也給大家分享一下!
                  以下面寫出自己認為有用的操作和代碼。
                  第一次在園里面寫,肯定有很多不足夠之處,希望大家多多指點。
           
          一、Iframe 篇

          //&&&&&&&&&&&&&&&&&&&&公共方法開始&&&&&&&&&&&&&&&
          //
          父對象得到子窗口的值
          //
          ObjectID是窗口標識,ContentID是元素ID
          function GetValue(ObjectID,ContentID)
          {
                 
          var IsIE = (navigator.appName == 'Microsoft Internet Explorer')
                               
          if(IsIE)
                               {
          //如果是IE         
                                      alert(document.frames(ObjectID).document.getElementById(ContentID).innerHTML);                              
                               }
                               
          else
                               {
          //如果是FF
                                       alert(document.getElementById(ObjectID).contentDocument.getElementById(ContentID).innerHTML);
                                             
          //FF下不支持innerText; 下面是解決方法                     
                                             //if(document.all){
                                             //  alert(document.getElementById('div1').innerText);
                                             //} else{
                                             //  alert(document.getElementById('div1').textContent);
                                             //}
                               }    
          }
           
          //父對象向子窗口賦值
          //
          ObjectID是窗口標識,ContentID是元素ID
          function SetValue(ObjectID,ContentID)
          {
          var IsIE = (navigator.appName == 'Microsoft Internet Explorer')
                        
          if(IsIE)
                        {
          //如果是IE         
                               document.frames(ObjectID).document.getElementById(ContentID).innerHTML="我是IE下通過父窗口賦值過來的";                            
                        }
                        
          else
                        {
          //如果是FF
                                document.getElementById(ObjectID).contentDocument.getElementById(ContentID).innerHTML="我是FF下通過父窗口賦值過來的";                  
                        }    
          }
          //&&&&&&&&&&&&&&&&&&&&公共方法結束&&&&&&&&&&&&&&&
           
           
                
          1.父窗口對子窗口操作
           
          刷新:
                document.getElementById(
          "IframeID").src=document.getElementById("IframeID").src+"?_="+Math.random();
          上面這種方法有時需要對“src”屬性處理一下。
           
          取值:
          //父窗口取子窗口的值
                 GetValue("Iframe1","IframeDiv");
           
          賦值:
          //父窗口設置窗口元素的值;
                 SetValue("Iframe1","IframeDiv");      
           
             
          2.子窗口操作父窗口
           
                        刷新:
                     (
          1)、window.parent.location.href=window.parent.location.href;  
                     (
          2)、window.parent.location.reload();
                        (
          3)、大家可以補充
           
              取值:
          alert(window.parent.document.getElementById(
          "IframeDiv").innerHTML);    
           
          賦值:
          window.parent.document.getElementById(
          "IframeDiv").innerHTML="我是從子窗口IFRAME傳過來的值";
           
          關閉:
          window.parent.opener
          =null;//如果不加這句,會提示關閉詢問窗口;
          window.parent.close();
          二、window.open 篇
          1.父窗口對子窗口操作
          打開:
          var win=null;
          win
          =window.open("Open.html","win","width=200,height=200");
           
          最大化:
          //窗口最大化
          function SonMaximize()
          {
                 
          if(win&&win.open&&!win.closed)
                 {
                        win.moveTo(
          -4,-4);
                        win.resizeTo(screen.availWidth
          +8,screen.availHeight+8);
                 }
          else{
                        alert('還沒有打開窗口或已經關閉');
                 }
          }
           
          最小化:
          //窗口最小化
          function SonMinimize()
          {
                 
          if(win&&win.open&&!win.closed)
                 {
                        win.resizeTo(
          0,0);
                        win.moveTo(
          0,window.screen.width);
                 }
          else{
                 alert('還沒有打開窗口或已經關閉');
                 }    
          }
           
           
           
          關閉:
          //關閉窗口
          function CloseSon()
          {
                 
          if(win&&win.open&&!win.closed)
                 {
                        win.opener
          =null;
                        win.close()
                 }
          else{
                        alert('還沒有打開窗口或已關閉') ;
                 }
          }
           
          刷新:
          //刷新
          function RefreshSon()
          {
                 
          if(win&&win.open&&!win.closed)
                 {
                        win.location.reload();
                        win.focus();
                 }
          else{
                        alert('窗口還沒有打開或已關閉');
                 }
          }
           
          查看窗口大小:
          function ViewSonSize()
          {
                 
          if(win&&win.open&&!win.closed)
                 {
                        alert(win.document.body.clientWidth
          +'*'+win.document.body.clientHeight);
                        win.focus();
                 }
          else
                 {
                        alert(' 還沒有打開窗口或者已關閉');
                 }    
          }
           
          取值:
          alert(window.document.getElementById(
          "OpenDiv").innerHTML);
           
          賦值:
          win.document.getElementById(
          "OpenDiv").innerHTML="我是從父窗口中傳過來的值";
           
          2.子窗口操作窗口
           
          刷新:
          window.opener.location.reload();
                 
          //下面這種方法也可以
                 //window.parent.location.href=window.parent.location.href;
           
           
           
           
           
          關閉本窗口:
          //關閉本窗口
          function CloseWindow()
          {     
          //window.opener.opener=null;
                 window.close();
          }
           
          關閉父窗口:
          //關閉父窗口
          function CloseParent()
          {     
          //火狐下不起作用,如果要想起作用。用下面的方法
              //開firefox,在地址欄輸入about:config      
                 //找到dom.allow_scripts_to_close_windows這項并改為true
                        var IsIE = (navigator.appName == 'Microsoft Internet Explorer')
                        
          if(IsIE){//如果是IE            
                               window.opener.opener=null;
                               window.opener.close();
                               window.close();     
                        }
          else{
                               alert(
          "火狐不能直接關閉;需要以下設置1.開firefox,在地址欄輸入about:config;2.找到dom.allow_scripts_to_close_windows這項并改為true");
                        }
                
          }
           
          取值:
          alert(window.opener.document.getElementById(
          "OpenDiv").innerHTML);     
           
          賦值:
          window.opener.document.getElementById(
          "OpenDiv").innerHTML="我是從子窗口Open傳過來的值";           
           
          三、模態窗口篇
          1.父窗口操作子窗口
          父窗口JS代碼:
          var parValue="現在顯示了父窗口中的變量值";
          var hao="郝建衛";
          function ShowDailog(PageHref,Title,Height,Width)
          {
                 
          //--------------left位置
                 //screen.availHeight聲明了顯示瀏覽器的屏幕的可用寬度
                 var dleft =(screen.availHeight-Height)/2;
                 
          //--------------top位置
                 var dtop =(screen.availWidth-Width)/2;
                 
          //---------------
           
          Var sRet 
          = window.showModalDialog(PageHref,window,Title,"scrollbars=yes;resizable=no;help=no;status=no;center=yes;dialogTop=25;dialogLeft="+ dleft +";dialogTop="+ dtop +";dialogHeight="+Height+"px;dialogWidth="+Width+"px;");
                 
          //--------return
                 if (sRet =="refresh")//這種是利用返回值來刷新父頁面
                 {
                        window.Test
          ="true";
                        window.location.reload();            
                        alert(window.Test);
                 }
          }
          function test()
          {
                 alert(
          "模態窗口成功調用父窗口的方法");
          }
          2.模態窗口操作父窗口
          var parentWin=window.dialogArguments; 
           
          刷新:
                 parentWin.location.reload(); 
           
          取值:
          alert(parentWin.document.getElementById(
          "ShowModalDialogDiv").innerHTML)   //獲取父窗口中的對象
           alert("我是從父窗口中得到的變量>>>"+parentWin.parValue);       //獲取父窗口中的變量
           
          調用父窗口JS方法:
          parentWin.test();    
          //調用父窗口中的方法
           
          賦值:
          parentWin.document.getElementById(
          "ShowModalDialogDiv").innerHTML="我是從子窗口ShowModalDialog傳過來的值";      
           
          關閉本窗口:
          //關閉本窗口
          function CloseWindow()
          {
                 window.parent.close();
          }
           
          關閉父窗口:
          //關閉父窗口
          function CloseModal()
          {    
                 
          var IsIE = (navigator.appName == 'Microsoft Internet Explorer')
                        
          if(IsIE){//如果是IE            
                               window.parent.parent.close();
                               
          //parentWin.opener=null;如果把上面的換成這行,不能關閉父窗口,
                               parentWin.close();
                               
          //window.parent.parent.parent.parent.close();這個只能關閉模態窗口本身目前只在IE6下測試
                        }else{
                               alert(
          "火狐不能直接關閉;需要以下設置1.開firefox,在地址欄輸入about:config;2.找到dom.allow_scripts_to_close_windows這項并改為true");
                        }    
          }
          JavaScript父窗口與子窗口相互操作.rar
          轉自:http://www.cnblogs.com/haojianwei/archive/2010/03/02/1676707.html
          posted on 2010-12-21 17:47 艾波 閱讀(1429) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 故城县| 扎赉特旗| 和平区| 安康市| 应用必备| 曲松县| 浦江县| 成武县| 沅江市| 石渠县| 聂荣县| 庆城县| 革吉县| 攀枝花市| 嘉峪关市| 雷波县| 新野县| 新余市| 乌拉特前旗| 郎溪县| 阿尔山市| 调兵山市| 满城县| 高邑县| 隆昌县| 河曲县| 耒阳市| 航空| 临朐县| 白水县| 乌拉特后旗| 若尔盖县| 明星| 通河县| 岑溪市| 宾川县| 威信县| 巴中市| 津市市| 新邵县| 舟山市|