彈出子頁(yè)面,兼容ie

window.showModalDialog()(兼容ie的寫(xiě)法)模式窗口, 一種很特別的窗口,當(dāng)它打開(kāi)時(shí),后面的父窗口的活動(dòng)會(huì)停止,除非當(dāng)前的模式子窗口關(guān)閉了, 才能操作父窗口.在做網(wǎng)頁(yè)Ajax開(kāi)發(fā)時(shí),我們應(yīng)該有時(shí)會(huì)用到它來(lái)實(shí)現(xiàn)表單的填寫(xiě), 或做類似網(wǎng)上答題的窗口. 它的特點(diǎn)是,傳參很方便也很強(qiáng)大,可直接調(diào)用父窗口的變量和方法.

使用方法:
vReturnValue = window.showModalDialog(路徑 , 可選參數(shù) ,框體的樣式) ;

*注:
谷歌瀏覽器不支持window.showModalDialog()方法园骆,在谷歌瀏覽器中用window.open()方法解決這個(gè)問(wèn)題;

參數(shù)傳遞

father.html

父接受子傳遞的內(nèi)容:<input id="txt10" type="text" name="txt10"><br />   
              <button onclick="setPermission()">點(diǎn)擊</button>

  function setPermission() {
        var url = "child.html";
        //居中問(wèn)題
        var dialogLeftValue = screen.width / 2 - 200 + "px";    
         var returnValue;
//判斷是否兼容Chrome瀏覽器
         if (navigator.userAgent.indexOf("Chrome") > 0) {
                var width = 600;  
                var height = 350;
                var top = (window.screen.height - 30 - height) / 2;
                var left = (window.screen.width - 30 - width) / 2;
                 window.open(url, self,"width=" + width + ",height=" + height +",top=" + top + ",left=" +left);
            }else{
                  returnValue =  window.showModalDialog(url, "", "dialogHeight:350px;dialogWidth:600px;status:0;dialogTop:100px;dialogLeft:" + dialogLeftValue);
                
            }
       
    }

child.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    
        <style>
            *{
                margin: 0;
                padding: 0;
            }
        .tab{width:100%;height:100%;}
        .tab-menu{height:42px;width:100%;background: rgba(170,255,245,0.5);}
        .tab-menu ul{list-style:none;}
        .tab-menu li{
            display:block;width:100px;float:left;border:1px solid #ddd;padding: 10px 0;
            text-align: center;
            border-bottom: none;
            }
        .tab-box div{width:100%;display:none;}
        /* 讓第一個(gè)框顯示出來(lái) */
        .tab-box div:first-Child{display:block;} 
        /* 改變選項(xiàng)卡選中時(shí)候的樣式 */
        .change{background:#fff;} 
        #btnFooter{
            width: 100%;
            height: 50px;
            position: fixed;
            bottom:0;
            display: flex;
            justify-content: flex-end;
            
        }
        </style>
    </head>
    <body scroll="no">  
           子傳向父的內(nèi)容: <input id="txt0" type="text" name="txt0"><br />   
              <button onclick="setFather()">點(diǎn)擊</button>
    </body>
    <script src="ztree/js/jquery-1.4.4.min.js"></script>
    
    <script type="text/javascript">
    
        //設(shè)置父窗口的值 
        function setFather() { 
            if (navigator.userAgent.indexOf("Chrome") > 0) {
//獲取元素之前必須用window.opener.
        window.opener.document.getElementsByName("txt10")[0].value = document.getElementById("txt0").value ;
          //獲取父寓调,中的對(duì)象
              var mxwreport = window.opener.$("#ss").data("mxwreport");
                
            }else{
                window.dialogArguments.document.getElementsByName("txt10")[0].value = document.getElementById("txt0").value ;
            }
            
        } 
       
    </script>
    
</html>

子頁(yè)面獲取父頁(yè)面的標(biāo)簽锌唾,并將自己的值賦值給父元素。

1:子頁(yè)面獲取父頁(yè)面?zhèn)魅氲闹敌枰忧熬Y兼容ie的寫(xiě)法:
ie獲取父元素標(biāo)簽 :window.dialogArguments.document.getElementsByName("txt10")[0].value夺英;
其他瀏覽器(主要是chrome),獲取父元素標(biāo)簽:
window.opener.document.getElementsByName("txt10")[0].value;
2:子頁(yè)面?zhèn)髦到o父頁(yè)面兼容ie的寫(xiě)法:(需要借助步驟1的獲取方法晌涕,其實(shí)就是子頁(yè)面的值傳遞給父頁(yè)面)
if (navigator.userAgent.indexOf("Chrome") > 0){
//其他瀏覽器的寫(xiě)法
window.opener.document.getElementsByName("txt10")[0].value = document.getElementById("txt0").value
}else{
//IE瀏覽器的寫(xiě)法
window.dialogArguments.document.getElementsByName("txt10")[0].value = document.getElementById("txt0").value ;
}

實(shí)際應(yīng)用場(chǎng)景

*當(dāng)父頁(yè)面有2個(gè)以上的地方點(diǎn)擊彈框都是同一的時(shí)候,需要獲取點(diǎn)擊框的id痛悯,來(lái)辨別點(diǎn)擊的誰(shuí)余黎,這個(gè)時(shí)候我們需要一個(gè)全局變量,并且這個(gè)全局變量必須添加window中载萌,window.id= whichtable.id惧财;
父頁(yè)面中的js

function OpenSetFont(whichtable)
{
        window.fontId = whichtable.id;
    if (navigator.userAgent.indexOf("Chrome") <0){
        var mikecatstr = window.showModalDialog(url,whichtable.value ,"dialogWidth:430px;dialogHeight:300px;help:no;status:no;scrollbar:no;");
    }else{
           openwindow(url,self,430,300)
    }
    if (mikecatstr == null)
        return;
    if (mikecatstr == "Cancel")
        return;
    whichtable.value = mikecatstr;
}
function return_OpenSetFont(mikecatstr){
    if (mikecatstr == null)
        return;
    if (mikecatstr == "Cancel")
        return;
     document.getElementById(window.fontId).value=mikecatstr;           
}

子頁(yè)面點(diǎn)擊確定按鈕的js

function Enter()
{
    var vFont = getFontCss();
    if (navigator.userAgent.indexOf("Chrome") <0){
        window.returnValue = vFont; 
    }else{  
        window.opener.return_OpenSetFont(vFont)
    }
    window.close(); 
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市扭仁,隨后出現(xiàn)的幾起案子垮衷,更是在濱河造成了極大的恐慌,老刑警劉巖乖坠,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搀突,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瓤帚,警方通過(guò)查閱死者的電腦和手機(jī)描姚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門涩赢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)戈次,“玉大人轩勘,你說(shuō)我怎么就攤上這事∏有埃” “怎么了绊寻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)悬秉。 經(jīng)常有香客問(wèn)我澄步,道長(zhǎng),這世上最難降的妖魔是什么和泌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任村缸,我火速辦了婚禮,結(jié)果婚禮上武氓,老公的妹妹穿的比我還像新娘梯皿。我一直安慰自己,他們只是感情好县恕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布东羹。 她就那樣靜靜地躺著,像睡著了一般忠烛。 火紅的嫁衣襯著肌膚如雪属提。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,610評(píng)論 1 305
  • 那天美尸,我揣著相機(jī)與錄音冤议,去河邊找鬼。 笑死师坎,一個(gè)胖子當(dāng)著我的面吹牛恕酸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屹耐,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼尸疆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了惶岭?” 一聲冷哼從身側(cè)響起寿弱,我...
    開(kāi)封第一講書(shū)人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎按灶,沒(méi)想到半個(gè)月后症革,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鸯旁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年噪矛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了量蕊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡艇挨,死狀恐怖残炮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缩滨,我是刑警寧澤势就,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站脉漏,受9級(jí)特大地震影響苞冯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侧巨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一舅锄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧司忱,春花似錦皇忿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至桨踪,卻和暖如春老翘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锻离。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工铺峭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汽纠。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓卫键,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親虱朵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子莉炉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容