主题:  关于模式对话框的最小化、最大化

ncs

职务:普通成员
等级:1
金币:0.0
发贴:15
注册:2002/5/15 13:13:25
#12002/5/15 13:30:52
<script>
function openMDialog(){
    MDialog=showModelessDialog("about:<html><FRAMESET style=\"border:none\" ROWS=\"21,*\" border=0><FRAME SRC=\"about:<script>function MiniWindow(){parent.window.moveTo(0,3000)}function MaxiWindow(){parent.window.resizeTo(screen.availWidth,screen.availHeight);parent.window.moveTo(0,0)}<\/script><body style='margin:0'><div style='position:absolute;width:11pt;right:26.5pt;font-family:webdings' onClick='MiniWindow()'>0</div><div style='position:absolute;width:11pt;right:14pt;font-family:webdings' onClick='MaxiWindow()'>1</div></body>\" NAME=\"topFrame\" scrolling=no><FRAME SRC=\"about:<body style='border:1 solid black'>sdfsdf</body>\" NAME=\"mainFrame\"></FRAMESET></html>"
}
</script>
<a href=### onclick="openMDialog()">打开模式对话框</a>




window.moveTo() window.resizeTo()不能用于模式对话框,open()的窗口是可以的。
大家有好办法吗?

编辑历史:[此帖最近一次被 allinhands 编辑过(编辑时间:2004-12-22 14:39:13)]


=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#22002/5/15 16:47:48
MSDN这样解释Dialog窗口的move和resize操作:
This method (注:moveTo或resizeTo)does not work on dialog windows. In order to move or size a dialog window, manipulate the dialogHeight,dialogWidth, dialogTop, and dialogLeftproperties.
可以在openModelessDialog 时设置这四个参数来设置位置和大小;
MSDN解释这四个属性为可读写属性,但对openModelessDialog返回的window对象的这四个属性无法进行写操作,所以无法在对话框打开后进行这两种操作,
不知谁有更好的办法??

编辑历史:[这消息被ridincal编辑过(编辑时间2002-05-15 16:49:05)]


ncs

职务:普通成员
等级:1
金币:0.0
发贴:15
注册:2002/5/15 13:13:25
#32002/5/15 17:33:12
已经解决了。
这是函数:
function MaxiWindow() {
    if(window.dialogWidth!=screen.availWidth+"px"){
        iW=window.dialogWidth
        iH=window.dialogHeight
        iL=window.dialogLeft
        iT=window.dialogTop
        window.dialogWidth=screen.availWidth
        window.dialogHeight=screen.availHeight
        window.dialogLeft=0
        window.dialogTop=0
        b1.innerText="2"
    }
    else{
        window.dialogWidth=iW
        window.dialogHeight=iH
        window.dialogLeft=iL
        window.dialogTop=iT
        b1.innerText="1"
    }
}

下面是那个“按钮”:
1



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#42002/5/15 18:32:39
解决得很好!!+5分!
原来是必须在modeless页面中设置dialogWidth、dialogHeight属性。



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#52002/5/15 19:28:05
将本贴作了个例子,供大家参考:

页面:点这儿参观

编辑历史:[这消息被ridincal编辑过(编辑时间2002-05-15 19:28:35)]
[这消息被ridincal编辑过(编辑时间2002-08-12 17:37:42)]


5D荣誉斑竹

职务:普通成员
等级:5
金币:10.0
发贴:3292
注册:2001/5/24 10:01:29
#62002/5/15 20:24:25
不错,收藏



5D限制级

职务:普通成员
等级:6
金币:10.0
发贴:4970
注册:2001/8/16 14:52:34
#72002/5/15 21:13:48
好东东 共享



ncs

职务:普通成员
等级:1
金币:0.0
发贴:15
注册:2002/5/15 13:13:25
#82002/5/16 13:40:03
大家继续讨论最小化的实现~

dialogLeft 和 dialogTop 无法把窗口移出屏幕外,
dialogWidth 和 dialogHeight 不能设成0,我试过。
哪位朋友有办法?



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#92002/5/16 15:32:40
呵呵,关于这一点微软说得很清楚:

Although a user can manually adjust the height of a dialog box to a smaller value provided the dialog box is resizable the minimum dialogHeight you can specify is 100 pixels.

dialogHeight 的最小值:100像素。



ncs

职务:普通成员
等级:1
金币:0.0
发贴:15
注册:2002/5/15 13:13:25
#102002/5/16 16:20:50
55555555555555555555555555555555~