Вы уверены, что это не ваше встроенное событие загрузки, которое его останавливает? Код ниже работает для меня.
index.htm
<html>
<head>
<title>Index</title>
<script type="text/javascript" language="JavaScript">
function openDialog() {
if (window.showModalDialog) {
var sURL = 'Modeless.htm';
var oWin = window.showModelessDialog(sURL);
}
else
{
alert('"showModlessDialog" not supported!');
}
}
function addEventSimple(obj,evt,fn) {
if (obj.addEventListener)
obj.addEventListener(evt,fn,false);
else if (obj.attachEvent)
obj.attachEvent('on'+evt,fn);
}
function removeEventSimple(obj,evt,fn) {
if (obj.removeEventListener)
obj.removeEventListener(evt,fn,false);
else if (obj.detachEvent)
obj.detachEvent('on'+evt,fn);
}
addEventSimple(window, "load", openDialog);
</script>
</head>
<body text="#ffffff">
<h1 align="center">Index</h1>
</body>
</html>
Modeless.htm
<html>
<head>
<title>Modeless dialog</title>
<script type="text/javascript" language="JavaScript">
addEventSimple(window, "load", showAlert);
function showAlert() {
alert('Modeless is now Loaded');
}
function addEventSimple(obj,evt,fn) {
if (obj.addEventListener)
obj.addEventListener(evt,fn,false);
else if (obj.attachEvent)
obj.attachEvent('on'+evt,fn);
}
function removeEventSimple(obj,evt,fn) {
if (obj.removeEventListener)
obj.removeEventListener(evt,fn,false);
else if (obj.detachEvent)
obj.detachEvent('on'+evt,fn);
}
</script>
</head>
<body text="#ffffff" >
<h1 align="center">Modeless</h1>
<script type="text/javascript" language="JavaScript">
/* If the next line is included, it prevents the onLoad event occurring in MSIE v7 */
alert('This alert stops the onLoad event in MSIE v7!');
</script>
</body>
</html>
Примечание: по какой-то причине мне нужно очистить кэш браузера, чтобы получить любые изменения в немодальном окне для обновления.