欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js模式化窗口問(wèn)題![window.dialogArguments]

 更新時(shí)間:2016年10月30日 00:27:54   投稿:mdxy-dxy  
這篇文章主要介紹了js模式化窗口問(wèn)題![window.dialogArguments],需要的朋友可以參考下

前些天做項(xiàng)目時(shí)遇到了個(gè)瀏覽器兼容問(wèn)題,解決后記錄一下,也將模式化的資料放上!

詳細(xì)問(wèn)題描述:

在火狐瀏覽器中彈出一個(gè)子窗口,子頁(yè)面中是一個(gè)分頁(yè),點(diǎn)下一頁(yè)后子頁(yè)面會(huì)刷新,然后window.dialogArguments對(duì)象就丟失了,alert輸出顯示undefined [解決方法見(jiàn)第三項(xiàng)]

最近做網(wǎng)站的時(shí)候需要用到模式化窗口功能,也遇到了一些問(wèn)題,所以查了查資料以解決

1.彈出窗口幾種方法:

a.window.open(pageURL,name,parameters);
b.window.showModalDialog()方法用來(lái)創(chuàng)建一個(gè)顯示HTML內(nèi)容的模態(tài)對(duì)話框(IE 4+支持)
c.window.showModelessDialog()方法用來(lái)創(chuàng)建一個(gè)顯示HTML內(nèi)容的非模態(tài)對(duì)話框(IE 5+支持)

2.顯示樣式問(wèn)題:所用到的是window.showModalDialog(),此方法彈出的窗口在IE6下顯示比IE7 ,IE8 下高度要小點(diǎn),所以你可以寫個(gè)js 解決這點(diǎn)(IE6下高度需要+35PX左右, dialogLeft 屬性可以根據(jù)屏幕寬度設(shè)置)
代碼片段如下:

 var swidth=window.screen.width;
 if(parseInt(width)>swidth)
 swidth=100;
 else
 swidth=(swidth-parseInt(width))/2;
varwindowStatus="dialogWidth:"+width+"px;dialogHeight:"+height+"px;dialogTop:80px;dialogLeft:"+swidth+"px;center:1;status:no;scroll:no;resizable:no;help:no;";
 
//彈出方法
 if(url.indexOf("?")<0){window.showModalDialog(url+'?setTime='+newDate().getTime(),obj,windowStatus);}
 else{window.showModalDialog(url+'&setTime='+newDate().getTime(),obj,windowStatus);}

3.dialogArguments對(duì)象FF瀏覽器中丟失問(wèn)題: 彈出showModalDialog窗口中需要分頁(yè)顯示數(shù)據(jù),點(diǎn)擊頁(yè)面中的信息,獲取分頁(yè)數(shù)據(jù)的ID,傳給彈出的父窗口。在IE下運(yùn)行很正常,但在FireFox 3.0中運(yùn)行時(shí),如果頁(yè)面不跳轉(zhuǎn)則可以正常的調(diào)用window.dialogArguments,若頁(yè)面一跳轉(zhuǎn)則會(huì)丟失window.dialogArguments的引用

現(xiàn)給出2種解決方法:

a.將showModalDialog窗口的頁(yè)面放在frameset或者iframe里面,進(jìn)行一次包裝。
例:
window.showModalDialog("test.aspx");

test.aspx 頁(yè)面內(nèi)容

<frameset cols="0,*">
<frame src=""/>
<frame src="分頁(yè)顯示數(shù)據(jù)的頁(yè)面"/>
</frameset> 

頁(yè)面返回方法變成

function returnValue(flag)
{
 var myObj = window.parent.dialogArguments;
 myObj.value = flag;
 window.parent.close();
}

這樣就可以拿到返回的值了

b. 如果不想多弄出來(lái)個(gè)頁(yè)面,可以用下面的方法,此方法可以用到了window.opener.document 對(duì)象,此對(duì)象IE7,IE8貌似都不支持(本人測(cè)試過(guò),不知道在你機(jī)器上咋樣),判斷下是什么瀏覽器,然后給父頁(yè)面的隱藏域賦值,然后父頁(yè)面再處理;

代碼如下:

function returnValue(flag)
 {
 document.getElementById("rValue").value=flag;
 if (window.ActiveXObject) //IE瀏覽器 
 {
 var myObj = window.dialogArguments;
 //alert(myObj);
 myObj.value = flag;
 window.close();
 }
 else{
 window.opener.document.getElementById("hid_oilid").value=flag;
 window.opener.document.getElementById("txt_oil").value=flag+"號(hào)";
 //self.close();
 window.close();
 } 
 }

基本所遇到問(wèn)題均已經(jīng)解決,關(guān)于父頁(yè)面與子頁(yè)面?zhèn)髦悼梢远鄥㈤喥渌Y料

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)寫入讀取緩存詳解

    微信小程序?qū)崿F(xiàn)寫入讀取緩存詳解

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)寫入緩存與讀取緩存詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • js中判斷Object、Array、Function等引用類型對(duì)象是否相等

    js中判斷Object、Array、Function等引用類型對(duì)象是否相等

    項(xiàng)目中有時(shí)會(huì)需要對(duì)引用類型進(jìn)行比較,如常見(jiàn)的object和array,我們知道,引用類型無(wú)法直接使用 == 或=== 取得期待結(jié)果,因此需要一個(gè)迭代的compare函數(shù)轉(zhuǎn)化成原始類型進(jìn)行比較
    2012-08-08
  • 實(shí)例淺析js的this

    實(shí)例淺析js的this

    本文通過(guò)做幾個(gè)簡(jiǎn)單的對(duì)照實(shí)驗(yàn),根據(jù)這幾個(gè)對(duì)照實(shí)驗(yàn)的結(jié)果,幫助大家理解js的this用法。下面就跟小編一起來(lái)看看吧
    2016-12-12
  • 巧用js提交表單輕松解決一個(gè)頁(yè)面有多個(gè)提交按鈕

    巧用js提交表單輕松解決一個(gè)頁(yè)面有多個(gè)提交按鈕

    使用js提交表單想必大家都會(huì),如果要實(shí)現(xiàn)一個(gè)頁(yè)面有多個(gè)提交按鈕,你會(huì)嗎?下面有個(gè)不錯(cuò)的示例,大家可以感受下
    2013-11-11
  • js回到頁(yè)面指定位置的三種方式

    js回到頁(yè)面指定位置的三種方式

    這篇文章主要介紹了js回到頁(yè)面指定位置的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • js獲取表格的行數(shù)和列數(shù)的方法

    js獲取表格的行數(shù)和列數(shù)的方法

    這篇文章主要介紹了js獲取表格的行數(shù)和列數(shù)的方法,需要的朋友可以參考下
    2015-10-10
  • JavaScript操作class和style樣式代碼詳解

    JavaScript操作class和style樣式代碼詳解

    這篇文章主要介紹了JavaScript操作class和style樣式的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • 基于Asp.net與Javascript控制的日期控件

    基于Asp.net與Javascript控制的日期控件

    使用Asp.net+Javascript控制的日期控件,需要的朋友可以參考下。
    2010-05-05
  • JS實(shí)現(xiàn)的RGB網(wǎng)頁(yè)顏色在線取色器完整實(shí)例

    JS實(shí)現(xiàn)的RGB網(wǎng)頁(yè)顏色在線取色器完整實(shí)例

    這篇文章主要介紹了JS實(shí)現(xiàn)的RGB網(wǎng)頁(yè)顏色在線取色器,結(jié)合完整實(shí)例形式分析了基于JS運(yùn)算及鼠標(biāo)事件響應(yīng)來(lái)操作頁(yè)面元素實(shí)現(xiàn)取色器功能的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • JavaScript中async/await的高級(jí)用法小結(jié)

    JavaScript中async/await的高級(jí)用法小結(jié)

    JavaScript的異步編程已經(jīng)從回調(diào)(Callback)演進(jìn)到Promise,再到如今廣泛使用的async/await語(yǔ)法,本文為大家整理了7個(gè)async/await高級(jí)用法,希望對(duì)大家有所幫助
    2023-12-12

最新評(píng)論