Frame里打开的showModalDialog无法调整大小

software51 2012-08-15 10:23:06
我打开showModalDialog代码是:
window.showModalDialog("d.html", window,"测试", "dialogWidth=200px; dialogHeight=100px; status:no;directories:no;scrollbars:no;Resizable=yes;")

我自己测试过,把上面参数中的 window 取消之后,大小问题就可以解决了,但是showModalDialog关闭后,window.dialogArguments 这个就得不到对应的数据啦!

如下为我的测试代码:

a.html


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>test</title>
</head>
<FRAMESET cols = "500,*" frameborder=yes bordercolor=silver>
<FRAME SRC="b.html" NAME="b" SCROLLING="No" id="b">
<FRAME SRC="c.html" NAME="c" SCROLLING="Yes" id="c">
</FRAMESET>
<NOFRAMES>
<BODY>
</BODY>

</NOFRAMES>
</html>


b.html


<html>

<head>

<title></title>

<SCRIPT LANGUAGE="JavaScript">
<!--
function dd(){
alert("ok----------------bbbb");
}
//-->
</SCRIPT>

<head>

<body onload="alert('我被加载了!bbbbbbbbbbb')">

<input type="button" name="测试b" onclick="dd();" value="测试B">

</body>

</html>


c.html


<html>

<head>

<title></title>

<SCRIPT LANGUAGE="JavaScript">
<!--
function cc(){
alert("ok----------------ccccccccc");
}
//-->

function openWin(){
openwin = window.showModalDialog("d.html", window,"测试", "dialogWidth=200px; dialogHeight=100px; status:no;directories:no;scrollbars:no;Resizable=yes;")

return openwin;

}

</SCRIPT>

<head>

<body onload="alert('我被加载了!ccccc')">

<input type="button" name="测试c" onclick="cc();" value="大理石c">

<input type="text" name="name" id="name"/>
<a href="#" onclick="openWin();">测试刷新1</a>

</body>

</html>


d.html


<html>

<head>

<title></title>

<SCRIPT LANGUAGE="JavaScript">
<!--
function dd(){
window.dialogArguments.location.href="c.html"
window.close();
}
//-->
</SCRIPT>

<head>

<body>



<input type="button" name="测试dd" onclick="dd();" value="测试d">

</body>

</html>



就是当 d.html 关闭之后,自动刷新 c.html页面,也就是提示:'我被加载了!ccccc'.
...全文
277 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-08-15
  • 打赏
  • 举报
回复
应该是可以的,跟是否在Frame没有关系的。
注意清空缓存测试新代码

另外,有些设置有最小值的,超过最小值是无效的,你可以改成其他数字测试,如300px ,600px
junjieok 2012-08-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
dialogWidth=200px;
语法:
dialogWidth:200px;

不是=号
[/Quote]

+1
software51 2012-08-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
dialogWidth=200px;
语法:
dialogWidth:200px;

不是=号
[/Quote]

一样的效果!
孟子E章 2012-08-15
  • 打赏
  • 举报
回复
dialogWidth=200px;
语法:
dialogWidth:200px;

不是=号
孟子E章 2012-08-15
  • 打赏
  • 举报
回复
这行你写错了
应该是
openwin = window.showModalDialog("d.html", window,"dialogWidth:600px; dialogHeight:100px; status:no;directories:no;scrollbars:no;Resizable=yes;")

showModalDialog是3个参数,没有4个参数,你写的是

openwin = window.showModalDialog("d.html", window,"测试", "dialogWidth=200px; dialogHeight=100px; status:no;directories:no;scrollbars:no;Resizable=yes;")
software51 2012-08-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
应该是可以的,跟是否在Frame没有关系的。
[/Quote]

对的,确实跟Frame没有关系,只所以要这样子写,只是为了再现我项目中类似的情况而已,现在问题关键是:

function openWin(){
openwin = window.showModalDialog("d.html", window,"测试", "dialogWidth=200px; dialogHeight=100px; status:no;directories:no;scrollbars:no;Resizable=yes;")

return openwin;

}


上面中的代码,只要存在参数windows(红色标识)的话,showModalDialog中那个大小就不起作用。取消window(红色标识)的话,那个大小才起作用!
software51 2012-08-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

应该是可以的,跟是否在Frame没有关系的。
注意清空缓存测试新代码

另外,有些设置有最小值的,超过最小值是无效的,你可以改成其他数字测试,如300px ,600px
[/Quote]

已经尝试过了,还是不行?另外你说清缓存,我也尝试过了,照样不行的!

61,129

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧