摘要:有些瀏覽器不兼容,嘗試用封裝替代,需要打開子窗口后向父窗口傳遞數(shù)據(jù)。在頁面上選擇一個(gè)值,確定關(guān)閉窗口后將選擇的這個(gè)值返回到父窗口。
window.showModalDialog 有些瀏覽器不兼容,嘗試用window.open() 封裝替代,需要打開子窗口后向父窗口傳遞數(shù)據(jù)。
Test dialog
子窗口返回?cái)?shù)據(jù):
window.returnvaluewindow.open 代替showModalDialog
頁面A.htm 用 window.open方式彈出頁面 B.htm 。
在頁面B.htm上選擇一個(gè)值,確定關(guān)閉窗口后將選擇的這個(gè)值返回到父窗口A.htm。
A.htm得到返回的值后,給本頁面上的文本框賦值。
A.html
Test dialog
B.html
另外一個(gè)封裝方法B
modal.js
var has_showModalDialog = !!window.showModalDialog;//定義一個(gè)全局變量判定是否有原生showModalDialog方法 if(!has_showModalDialog &&!!(window.opener)){ window.onbeforeunload=function(){ window.opener.hasOpenWindow = false; //彈窗關(guān)閉時(shí)告訴opener:它子窗口已經(jīng)關(guān)閉 } } //定義window.showModalDialog如果它不存在 if(window.showModalDialog == undefined){ window.showModalDialog = function(url,mixedVar,features){ if(window.hasOpenWindow){ alert("您已經(jīng)打開了一個(gè)窗口!請(qǐng)先處理它");//避免多次點(diǎn)擊會(huì)彈出多個(gè)窗口 window.myNewWindow.focus(); } window.hasOpenWindow = true; if(mixedVar) var mixedVar = mixedVar; //因window.showmodaldialog 與 window.open 參數(shù)不一樣,所以封裝的時(shí)候用正則去格式化一下參數(shù) if(features) var features = features.replace(/(dialog)|(px)/ig,"").replace(/;/g,",").replace(/:/g,"="); //window.open("Sample.htm",null,"height=200,width=400,status=yes,toolbar=no,menubar=no"); //window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px"); var left = (window.screen.width - parseInt(features.match(/width[s]*=[s]*([d]+)/i)[1]))/2; var top = (window.screen.height - parseInt(features.match(/height[s]*=[s]*([d]+)/i)[1]))/2; window.myNewWindow = window.open(url,"_blank",features); } }
A.html 父頁面
Test dialog 內(nèi)容哈哈哈
B.html頁面:
B
相關(guān)文章:
高版本chrome不再支持window.showmodaldialog 的臨時(shí)替換方案【用window.open】
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/51589.html
摘要:坑無視和是十分特殊的事件,要求事件處理函數(shù)內(nèi)部不能阻塞當(dāng)前線程,而卻恰恰就會(huì)阻塞當(dāng)前線程,因此規(guī)范中以明確在和中直接無視這幾個(gè)方法的調(diào)用。 前言 ?最近實(shí)施的同事報(bào)障,說用戶審批流程后直接關(guān)閉瀏覽器,操作十余次后系統(tǒng)就報(bào)用戶會(huì)話數(shù)超過上限,咨詢4A同事后得知登陸后需要顯式調(diào)用登出API才能清理4A端,否則必然會(huì)超出會(huì)話上限。?即使在頁面上增添一個(gè)登出按鈕也無法保證用戶不會(huì)直接關(guān)掉瀏覽器...
摘要:前言本文講解前端面試的的內(nèi)容。復(fù)習(xí)前端面試的知識(shí),是為了鞏固前端的基礎(chǔ)知識(shí),最重要的還是平時(shí)的積累注意文章的題與題之間用下劃線分隔開,答案僅供參考。返回當(dāng)前文檔的標(biāo)題。改用則可以進(jìn)行針對(duì)性的和避免不必要的。 showImg(https://segmentfault.com/img/bVbv2GE?w=900&h=400); 1. 前言 本文講解前端面試的 HTML 的內(nèi)容。 復(fù)習(xí)前端面...
摘要:僅限數(shù)值表示新窗口的高度。一個(gè)字符串參數(shù),并將其顯示給用戶,提供兩個(gè)按鈕,一個(gè)按鈕返回布爾值另一個(gè)按鈕返回布爾值。 全局作用域 window 在是BOM 的核心對(duì)象,他是瀏覽器的一個(gè)實(shí)例。 在全局作用域中聲明的變量、函數(shù)都會(huì)變成window 對(duì)象的屬性和方法。如: var age = 18; function sayAge(){ console.log(window.age);...
摘要:對(duì)象的核心對(duì)象是,它表示瀏覽器的一個(gè)實(shí)例。及更高版本不會(huì)拋出錯(cuò)誤。與框架有關(guān)的最后一個(gè)對(duì)象是,它始終指向?qū)嶋H上,和對(duì)象可以互換使用。設(shè)置值說明或表示瀏覽器窗口是否最大化。僅限數(shù)值表示新窗口的高度。 ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么 BOM(瀏覽器對(duì)象模型)則無疑才是真正的核心。BOM 提供了很多對(duì)象,用于訪問...
閱讀 2917·2021-11-19 09:40
閱讀 3602·2021-10-09 09:43
閱讀 2683·2021-09-22 15:31
閱讀 1736·2021-07-30 15:31
閱讀 790·2019-08-30 15:55
閱讀 3268·2019-08-30 15:54
閱讀 1170·2019-08-30 11:26
閱讀 1918·2019-08-29 13:00