【发布时间】:2012-01-30 17:01:42
【问题描述】:
我有一个较旧的 Intranet 应用程序,它需要在模式对话框窗口中显示两个框架(一个固定菜单栏和一个可变内容数据视图)。目前,使用window.showModalDialog 函数打开对话框,一切正常,只要我在 Internet Explorer 8(任何视图模式)或 Internet Explorer 9 中打开页面 Compatibility View em> 已启用。
不幸的是,在 IE9 中关闭 兼容性视图 时,无论指定的 dialogWidth 和 dialogHeight 值如何,对话框窗口总是以 266 x 138 像素的大小打开。我创建了一个显示问题的小示例:
index.html(最初加载的页面):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<input type="button" value="popup"
onclick="showModalDialog ('dialog.html', null, 'dialogWidth:500px;dialogHeight:400px;resizable:yes')" />
</body>
</html>
dialog.html(在对话框窗口中打开的页面):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
<frameset rows="*, 70">
<frame src="frame1.html" />
<frame src="frame2.html" />
</frameset>
</html>
frame1.html/frame2.html(两个框架的内容):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<p>Frame Content</p>
</body>
</html>
仅当我在对话框中显示框架集文档时才会出现此问题。打开常规 html 文档(包含带有一些内容的正文)时,将按照函数调用中指定的方式设置大小。
此外,在加载文档后更改对话框大小仅适用于常规文档,不适用于框架集,例如在 dialog.html 中的开始 html 标记之后插入以下代码:
<head>
<script type="text/javascript" />
window.setTimeout (function () { window.dialogWidth = "500px"; window.dialogHeight = "400px"; }, 10000);
</script>
</head>
由于我不想更改应用程序的整体结构(尤其是基于帧的),而且我不知道我是否做错了什么,或者我是否在 Internet Explorer 中发现了错误,所以欢迎提供解决此问题的提示。
【问题讨论】:
标签: internet-explorer size modal-dialog frameset