Имам по-старо интранет приложение, което трябва да показва два кадъра (фиксирана лента с менюта и изглед на данни с променливо съдържание) в модален диалогов прозорец. В момента диалоговият прозорец се отваря с помощта на функцията window.showModalDialog
и всичко работи добре, стига да отварям страницата в Internet Explorer 8 (с произволен режим на изглед) или в Internet Explorer 9 с Изглед за съвместимост активиран.
За съжаление, когато се изключи Изгледът за съвместимост в IE9, диалоговият прозорец винаги се отваря в размер 266 x 138 пиксела, независимо от зададените стойности на dialogWidth и dialogHeight. Създадох малък пример, показващ проблема:
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 документ (съдържащ тяло с някакво съдържание), размерът се задава, както е посочено в извикването на функцията.
Освен това промяната на размера на диалоговия прозорец, след като документът е зареден, работи само за обикновени документи, не и за набори от рамки, напр. вмъкнете следния код след отварящия html таг в dialog.html:
<head>
<script type="text/javascript" />
window.setTimeout (function () { window.dialogWidth = "500px"; window.dialogHeight = "400px"; }, 10000);
</script>
</head>
Тъй като не искам да променям цялостната структура на приложението (особено основаването на рамки) и не знам дали правя нещо нередно или съм намерил грешка в Internet Explorer, всякакви съвети за разрешаване този проблем е добре дошъл.