<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JS子父窗口互相操作取值賦值的方法介紹_javascript技巧

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:09:24
        文檔

        JS子父窗口互相操作取值賦值的方法介紹_javascript技巧

        JS子父窗口互相操作取值賦值的方法介紹_javascript技巧:$(#父窗口元素ID,window.parent.document); 對應(yīng)javascript版本為window.parent.document.getElementByIdx_x(父窗口元素ID); 取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素
        推薦度:
        導(dǎo)讀JS子父窗口互相操作取值賦值的方法介紹_javascript技巧:$(#父窗口元素ID,window.parent.document); 對應(yīng)javascript版本為window.parent.document.getElementByIdx_x(父窗口元素ID); 取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素

        $("#父窗口元素ID",window.parent.document);

        對應(yīng)javascript版本為window.parent.document.getElementByIdx_x("父窗口元素ID");

        取父窗口的元素方法:$(selector, window.parent.document);
        那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);

        類似的,取其它窗口的方法大同小異
        $(selector, window.top.document);
        $(selector, window.opener.document);
        $(selector, window.top.frames[0].document);

        --------------------------------------------------------------------------------------------------

        子窗口創(chuàng)建及父窗口與子窗口之間通信:

        1、Javascript彈出子窗口

        可以通過多種方式實現(xiàn),下面介紹幾種方法

        (1) 通過window對象的open()方法,open()方法將會產(chǎn)生一個新的window窗口對象

        其用法為:
        window.open(URL,windowName,parameters);

        URL: 描述要打開的窗口的URL地址,如何為空則不打開任何網(wǎng)頁;

        windowName:描述被打開的窗口的民稱,可以使用'_top'、'_blank'等內(nèi)建名稱,這里的名稱跟里的target屬性是一樣的。

        parameters:描述被打開的窗口的參數(shù)值,或者說是樣貌,其包括窗口的各個屬性值,及要傳入的參數(shù)值。

        例如:

        打開一個 400 x 100 的干凈的窗口:
        open('','_blank','width=400,height=100,menubar=no,toolbar=no,
        location=no,directories=no,status=no,scrollbars=yes,resizable=yes')

        也可以這樣寫: var newWindow = open('','_blank');

        參數(shù)說明如下:

        top=# 窗口頂部離開屏幕頂部的像素數(shù)
        left=# 窗口左端離開屏幕左端的像素數(shù)
        width=# 窗口的寬度
        height=# 窗口的高度
        menubar=... 窗口有沒有菜單,取值yes或no
        toolbar=... 窗口有沒有工具條,取值yes或no
        location=... 窗口有沒有地址欄,取值yes或no
        directories=... 窗口有沒有連接區(qū),取值yes或no
        scrollbars=... 窗口有沒有滾動條,取值yes或no
        status=... 窗口有沒有狀態(tài)欄,取值yes或no
        resizable=... 窗口給不給調(diào)整大小,取值yes或no


        (2) 在javascript中除了通過open()方法建立window對象實現(xiàn)彈出窗口外,還可以通過建立對話框的方式彈出窗口。
        如:
        alert(""); //彈出信息提示對話框
        confirm(""); //彈出信息確認(rèn)對話框
        prompt(""); //具有交互性質(zhì)的對話框

        但是,上述實現(xiàn)的彈出窗口具有的功能較為單一,只能完成較為簡單的功能。對于需要在對話框中顯示多個數(shù)據(jù)信息,

        甚至是HTML控件就無能為力了。

        (3) 使用模態(tài)對話框?qū)崿F(xiàn)復(fù)雜的對話框需求
        在javascript的內(nèi)建方法中還有一類方法可以實現(xiàn)通過對話框顯示HTML內(nèi)容,
        也就是說可以通過創(chuàng)建對話框的方式來完成創(chuàng)建窗口對象所能完成的功能。
        包括創(chuàng)建模態(tài)對話框和非模態(tài)對話框兩種。

        實現(xiàn)方法為:

        //創(chuàng)建模態(tài)你對話框
        window.showModalDialog(sURL,vArguments,sFeatures)


        //創(chuàng)建非模態(tài)對話框
        window.showModelessDialog(sURL,vArguments,sFeatures)

        其區(qū)別在于:

        用showModelessDialog()打開窗口時,不必用window.close()去關(guān)閉它,當(dāng)以非模態(tài)方式[IE5]打開時,打開對話框

        的窗口仍可以進行其他的操作,即對話框不總是最上面的焦點,當(dāng)打開它的窗口URL改變時,它自動關(guān)閉。而模態(tài)[IE4]方式的對話框始終有焦點(焦點不可移走,直到它關(guān)閉)。模態(tài)對話框和打開它的窗口相聯(lián)系,因此我們打開另外的窗口時,他們的鏈接關(guān)系依然保存,并且隱藏在活動窗口的下面。 showModeDialog()則不然。

        參數(shù)說明:

        sURL:必選參數(shù),類型:字符串。

        用來指定對話框要顯示的文檔的URL。

        vArguments:可選參數(shù),類型:變體。

        用來向?qū)υ捒騻鬟f參數(shù)。傳遞的參數(shù)類型不限,包括數(shù)組等。對話框通過window.dialogArguments來取得傳遞進來的參數(shù)。

        sFeatures:選參數(shù),類型:字符串。

        用來描述對話框的外觀等信息,可以使用以下的一個或幾個,用分號“;”隔開。

        dialogHeight:對話框高度

        不小于100px,IE4中dialogHeight和dialogWidth 默認(rèn)的單位是em,而IE5中是px,為方便其見,在定義modal方式的對話框時,用px做單位。

        dialogWidth: 對話框?qū)挾取?/P>

        dialogLeft: 距離桌面左的距離。

        dialogTop: 離桌面上的距離。

        center: 窗口是否居中

        默認(rèn)yes,但仍可以指定高度和寬度,取值范圍{yes | no | 1 | 0 }。

        help: 是否顯示幫助按鈕

        默認(rèn)yes,取值范圍 {yes | no | 1 | 0 }。

        resizable: 是否可被改變大小。

        默認(rèn)no,取值范圍 {yes | no | 1 | 0 } [IE5+]。

        status: 是否顯示狀態(tài)欄。

        默認(rèn)為yes[ Modeless]或no[Modal],

        取值范圍{yes | no | 1 | 0 } [IE5+]。

        scroll:指明對話框是否顯示滾動條。

        默認(rèn)為yes,取值范圍{ yes | no | 1 | 0 | on | off }。

        還有幾個屬性是用在HTA中的,在一般的網(wǎng)頁中一般不使用。

        dialogHide:在打印或者打印預(yù)覽時對話框是否隱藏。

        默認(rèn)為no,取值范圍{ yes | no | 1 | 0 | on | off }。

        edge:指明對話框的邊框樣式。

        默認(rèn)為raised,取值范圍{ sunken | raised }。

        unadorned:默認(rèn)為no,取值范圍{ yes | no | 1 | 0 | on | off }。

        傳入?yún)?shù):

        要想對話框傳遞參數(shù),是通過vArguments來進行傳遞的。類型不限制,對于字符串類型,最大為4096個字符。也可以傳遞對象

        例如:

        var newWin=window.showModalDialog(url,window,'dialogHeight:500px, dialogLeft:100px, dialogTop:100px,

        dialogWidth:300px, status:0, edge:sunken');

        newWin.open();

        與使用window.open()方法創(chuàng)建窗口相比,模態(tài)方法創(chuàng)建窗口的區(qū)別在于有模態(tài)方法創(chuàng)建的窗口后將不能操作父窗口.


        2、子窗口與父窗口間通信

        (1) 使用window.open()創(chuàng)建的窗口與父窗口通信
        可以在子窗口頁面中通過window.opener來獲取父窗口對象,獲取之后子窗口便可以對父窗口執(zhí)行刷新,傳值等操作。
        如:
        window.opener.location.reload(); //子窗口刷新父窗口
        window.opener.location.href //獲取父窗口href
        window.opener.locaiton.pathname //獲取父窗口路徑名

        //刷新父頁面
        window.location.href=window.location.href ; //重新定位父頁面
        window.location.reload;


        (2) 模態(tài)窗口與父窗口通信
        通過使用showModelDialog(),及showModelessDialog()方法創(chuàng)建的子窗口想與父窗口通信時,不能通過window.opener

        來獲取父窗口對象。要實現(xiàn)通信,必須在創(chuàng)建模態(tài)子窗口時向子窗口傳入父窗口對象。

        實現(xiàn)方式為:

        在父窗口中:

        var newWin=window.showModelDialog(url,window,'');
        newWin.open();

        此時參數(shù)window即是父窗口對象

        在子窗口中:

        需首先獲取父窗口對象,然后才能使用父窗口對象。由于父窗口對象是在創(chuàng)建
        子窗口時通過傳入?yún)?shù)的方式傳入的,因此,在子窗口中也只能通過獲取窗口參數(shù)的方式獲取父窗口對象。獲取方式如下:

        var parent=widnow.dialogArguments;
        變量parent便是父窗口對象。

        例如:

        //通過子窗口提交父窗口中的表單:form1,提交后執(zhí)行查詢操作
        var parent=window.dialogArguments;
        parent.document.form1.action="QueryInfor.jsp";
        parent.submit();

        //刷新父頁面
        var parent=window.dialogArguments;
        parent.location.reload();

        //從子窗口傳值到父窗口
        要實現(xiàn)在模態(tài)子窗口中傳值到父窗口,需要使用window.returnValue完成

        實現(xiàn)方法如下:

        在子窗口中:

        //獲取父窗口某字段值,對該值加一后返回父窗口
        var parent=window.dialogArguments;
        var x=parent.docuement.getElementById("age").value;
        x=x+1;

        //傳回x值
        window.returnValue=x;

        在父窗口中:

        //獲取來自子窗口的值
        var newWin=window.showModelDialog(url,window,'');
        if(newWin!=null)
        document.getElementByIdx_x("age").value=newWin;

        //在子窗口中設(shè)置父窗口的值
        在子窗口中向父窗口中傳入值似乎沒有直接設(shè)置父窗口中的值來得明了。直接設(shè)置父窗口中元素的值顯得要更靈活一些,不過具體使用哪種方法要根據(jù)實際情況和已有的實現(xiàn)方式而定,因為如果使用了不切實際的方法不僅降低開發(fā)效率,也降低了執(zhí)行效率,往往也會造成不優(yōu)雅的實現(xiàn)方式和代碼風(fēng)格。

        子窗口設(shè)置父窗口的值使用方法如下:

        子窗口中:

        var parent=window.dialogArguments;
        var x=parent.document.getElementByIdx_x("age").value;
        x=x+1;
        //設(shè)置父窗口中age屬性值
        parent.document.getElementByIdx_x("age").value=x;

        以上是我在項目中使用javascript解決子窗口問題時,收集及積累的一些方法和資料。我是使用建立模態(tài)窗口的方式來實現(xiàn)的(這主要與項目本身有關(guān)),不過其實不論是使用window.open()還是使用window.showModelDialog()進行傳參等操作時雖然在實現(xiàn)方法上有很大的差別,初次接觸會覺得有點亂,但只要理清子窗口與父窗口之間的關(guān)系和角色之后,就很好理解了。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS子父窗口互相操作取值賦值的方法介紹_javascript技巧

        JS子父窗口互相操作取值賦值的方法介紹_javascript技巧:$(#父窗口元素ID,window.parent.document); 對應(yīng)javascript版本為window.parent.document.getElementByIdx_x(父窗口元素ID); 取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素
        推薦度:
        標(biāo)簽: 介紹 js 方式
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费黄色福利视频| 日本xxxx色视频在线观看免费| 免费看男女下面日出水来| 亚洲AV无码不卡在线播放| 丝袜足液精子免费视频| 亚洲国产成人久久综合一区77| 国产成人综合亚洲绿色| 国产在线ts人妖免费视频| 亚洲av成人片在线观看| 国产成人无码免费视频97| 日日躁狠狠躁狠狠爱免费视频| 亚洲区日韩区无码区| 久久精品成人免费国产片小草| 亚洲精品无码久久久久| 久操视频免费观看| 亚洲人成免费电影| 在线免费观看一级片| 免费人成大片在线观看播放电影 | 亚洲av永久无码精品秋霞电影秋 | 美女羞羞喷液视频免费| 亚洲精品无码永久在线观看| 国产一级婬片A视频免费观看| 久久91亚洲人成电影网站| 成人片黄网站色大片免费观看APP| 亚洲av无码成h人动漫无遮挡| 97国产免费全部免费观看| 亚洲AV无码成人专区| 国产人成免费视频| 国产成人无码区免费网站| 亚洲综合自拍成人| 在线免费观看一区二区三区| 一级毛片a免费播放王色| 亚洲AV色香蕉一区二区| 成人免费视频观看无遮挡| 男女污污污超污视频免费在线看| 亚洲日韩中文字幕在线播放| 思思re热免费精品视频66| 国产成人亚洲精品91专区高清 | 黄色毛片免费观看| 亚洲精品国产成人片| 性生交片免费无码看人|