亚洲中文字幕无码日韩精品,亚洲一区制服无码中字,亚洲精品第一国产综合精品99 ,一本大道中文日本香蕉

微立頂科技

新聞資訊

創(chuàng)新 服務(wù) 價(jià)值

  artdialog彈出層open頁面iframe間數(shù)據(jù)傳遞

發(fā)布日期:2023/2/28 8:34:06      瀏覽量:

“artdialog彈出層open頁面iframe間數(shù)據(jù)傳遞”是什么意思?,實(shí)例解析:

頁面中,調(diào)用artDialog插件artDialog.open()方法打開a頁面:iframeA.html,在a頁面中再調(diào)用artDialog.open()方法打開b頁面:iframeB.html,點(diǎn)擊b頁面內(nèi)一鏈接,要將b頁面的數(shù)據(jù)傳遞到a頁面中,這就是上文所說的“artdialog彈出層open頁面iframe間數(shù)據(jù)傳遞”,具體操作可看下面的gif動(dòng)畫示例圖(注意a頁面標(biāo)紅文字的變化):

要實(shí)現(xiàn)示例圖片中的效果,這里涉及到2個(gè)問題要處理:

1、要傳遞的數(shù)據(jù)怎么保存,方便在各個(gè)Iframe頁面中操作該數(shù)據(jù)

使用art.dialog.data()方法實(shí)現(xiàn);
基本用法:

添加:art.dialog.data(變量名,值); // 跨框架數(shù)據(jù)共享接口,保存在頂層框架下面
刪除:art.dialog.removeData(變量名);

2、b頁面點(diǎn)擊確定按鈕后,怎么操作b頁面元素,關(guān)鍵在于怎么獲取b頁面的文檔對(duì)象?

最直接的操作方法:

art.dialog.open(’xx.html’, {
ok:function(ifrWin,topWin){ //ifrWin:iframe window對(duì)象,topWin:頂級(jí)頁面 window對(duì)象

var ifrDoc=ifrWin.document;  // iframe document對(duì)象,能獲取到這個(gè)查找元素自然就沒什么難度啦!

}
})

art.dialog.open(’xx.html’, {
ok:function(){

var ifrWin= this.iframe.contentWindow,

ifrDoc=this.iframe.contentDocument; //ifrWin:iframe window對(duì)象; ifrDoc: iframe document對(duì)象

}
})

另外,開發(fā)中比較常見的應(yīng)用場景是:b頁面里面是一系列的表單,點(diǎn)確定按鈕后如果表單有漏洞填或不符合填寫規(guī)則,則阻止關(guān)閉彈窗,并在彈窗頁面內(nèi)給出錯(cuò)誤提示,關(guān)鍵代碼:

art.dialog.open(’xx.html’, {
ok:function(ifrWin,topWin){

var noError=ifrWin.formOk(); // 調(diào)用b頁面定義的formOk()方法,檢測彈窗表單填寫是否符合規(guī)則,完全符合返回true,有誤則返回false;

if(!noError) return false; //阻止關(guān)閉彈窗

}
})

使用art.dialog.opener屬性:

在b頁面獲取open方法觸發(fā)來源a頁面window對(duì)象,然后art.dialog.opener.document,是可以獲取到a頁面的文檔對(duì)象的 (注意這個(gè)b頁面中也必須引用artDialog腳本文件)

需要注意的是:

調(diào)用觸發(fā)多個(gè)彈窗時(shí),使用art.dialog.open()和 top.art.dialog.open()2種寫法打開b頁面,再在b頁面中調(diào)用art.dialog.opener,獲取到的 觸發(fā)來源頁面的window對(duì)象是不一樣的:前者得到的是open方法觸發(fā)來源a頁面window對(duì)象,后者得到的始終是頂級(jí)父頁面window對(duì)象!

調(diào)用artDialog.open()方法打開a頁面時(shí),指定id屬性為a,該屬性可用來標(biāo)識(shí)a頁面,寫入數(shù)據(jù)時(shí)使用top.art.dialog.list["a"].iframe.contentDocument獲取到a頁面的文檔對(duì)象,但之法比較冗長,推薦上面的寫法!

源碼中的top.art.dialog.list的寫法,必須指定top,否則art.dialog.list["a"]會(huì)返回undefined,而且調(diào)用close()方法關(guān)閉artdialog彈出層時(shí),artdialog會(huì)報(bào)“Uncaught TypeError: Cannot read property ’close’ of undefined”錯(cuò)誤提示,具體如下圖:

另外artdialog關(guān)閉彈窗方法,寫法:

  1.  ok()/cancel() 方法中,調(diào)用this.close();
  2.  art.dialog.open.api.close();(b頁面獲取open方法擴(kuò)展方法)
  3.  art.dialog.list[指定id].close()(獲取artdialog實(shí)例對(duì)象,進(jìn)而獲取實(shí)例對(duì)象下的close()方法)



  業(yè)務(wù)實(shí)施流程

需求調(diào)研 →

團(tuán)隊(duì)組建和動(dòng)員 →

數(shù)據(jù)初始化 →

調(diào)試完善 →

解決方案和選型 →

硬件網(wǎng)絡(luò)部署 →

系統(tǒng)部署試運(yùn)行 →

系統(tǒng)正式上線 →

合作協(xié)議

系統(tǒng)開發(fā)/整合

制作文檔和員工培訓(xùn)

售后服務(wù)

馬上咨詢: 如果您有業(yè)務(wù)方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術(shù),還有行業(yè)經(jīng)驗(yàn)積累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     聯(lián)系人:石先生/雷先生