模态弹出窗口的内容在加载后没有在IE中重写

时间:2014-10-01 14:49:47

标签: javascript html internet-explorer popup

我尝试本来应该做的简单操作:当用户点击链接时,会弹出一个模式窗口,其中填充了字符串中的一些适当数据。这是窗口的HTML:

<!DOCTYPE HTML>
<html>
<head>
<title>Modal Display Window</title>

</head>
<body>

  <div id="modal_display_block">REPLACE THIS</div>

</body>
</html>

这是调用和填充窗口的Javascript函数:

function displayCenterBlock(data) {

    DispWin = window.open("modal_window.html", "", 'toolbar=no,status=no,width=300,height=300');

    DispWin.onload = function() {
        DispWin.document.getElementById('modal_display_block').innerHTML = data;
    }

}

除了Internet Explorer之外,我在尝试的每个浏览器中都能很好地工作。在IE中,innerHTML不会被数据重写。是否有一些特定于IE的技巧或调整我需要申请才能在浏览器中使用它?

非常感谢提前!

ON EDIT:我发现如果我将元素重写行移出onload函数,那么它在IE中工作正常,但在其他浏览器中却不行。看来我的选择是使用一些条件代码立即重写IE并等待所有其他浏览器的页面加载,或者放弃重写元素方法并只使用document.write。我从论坛搜索得到的人们喜欢不鼓励document.write,但现在看起来非常吸引人。

1 个答案:

答案 0 :(得分:0)

好的,无论好坏,这段代码都实现了目标,并且即使在IE中也可以跨浏览器工作。

DispWin = window.open("", "Display", 'toolbar=no,status=no,width=300,height=300');

DispWin.document.open();

DispWin.document.write(data);

DispWin.document.close();

DispWin.focus();

我得到了document.write可以重写整个页面,这有时很糟糕,但在这种情况下,这正是我想要的:一个小页面只显示数据参数中传递的内容。我可以在线设计它。