我尝试本来应该做的简单操作:当用户点击链接时,会弹出一个模式窗口,其中填充了字符串中的一些适当数据。这是窗口的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,但现在看起来非常吸引人。
答案 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可以重写整个页面,这有时很糟糕,但在这种情况下,这正是我想要的:一个小页面只显示数据参数中传递的内容。我可以在线设计它。