我有一个较旧的Intranet应用程序,需要在模式对话框窗口中显示两个框架(一个固定菜单栏和一个可变内容数据视图)。目前,使用window.showModalDialog
函数打开对话框并且一切正常,只要我在Internet Explorer 8(使用任何视图模式)或Internet Explorer 9中打开页面,并且兼容性视图已启用。Internet Explorer 9忽略了使用框架集showModalDialog的dialogWidth/Height
不幸的是,在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文档(包含一些内容的主体)时,大小按照函数调用中的指定进行设置。
此外,文档加载后更改对话框大小仅适用于常规文档,而不适用于框架集f.e.插入打开HTML标记后,将下面的代码dialog.html:
<head>
<script type="text/javascript" />
window.setTimeout (function() { window.dialogWidth = "500px"; window.dialogHeight = "400px"; }, 10000);
</script>
</head>
因为我不想改变应用程序(尤其是框架basedness)的整体结构,我不知道如果我做错了某些事情,或者如果我在Internet Explorer中发现了一个错误,则欢迎提供解决此问题的任何提示。
此问题最近出现在IE11上。我的对话框没有文档类型,所以我无法使用D.Calliess的解决方案。您的解决方案适用于IE11! – Keorl 2015-08-14 13:35:14