我加上<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 之后,ie8上也能执行子窗口操作父窗口了,我也按照您说提示的思路,做了改动,但是跟我之前写的代码产生的效果一样:数据并没有动态更新,详细说,情况是这样的:在B窗口中插入一条数据a之后,B窗口关闭了,同时主窗口A貌似刷新了,但并没有显示这条数据a。我再打开B窗口再插入一条数据b之后,主窗口A就显示了之前插入的数据a,但并没有显示最近插入的那条数据b,接下来依次按照之前的顺序操作,每次都能显示插入前前的数据,对最近插入的数据,并不能显示,不明白为什么会这样,还请您多多指点,谢谢你!
具体代码如下所示: var hasClosed; function closeWin(){ hasClosed = true; window.opener.location.reload(); window.close(); }
<html>
<head>
<script>
function OpenNewWindow()
{
window.open('b.htm'); document.getElementById("div1").style.height="400px";
}
</script>
</head><body>
<input type="button" value="open" onclick = "OpenNewWindow();"/>
<div style=" background: #00FF00; height:200px;" id="div1">
AAAAAAAAAAAAAAAAAAAAAAA
</div>
</body>
</html>
b.htm
<html>
<head>
<script>
function refeshParent()
{
window.opener.location.reload();
}
</script>
</head><body>
<input type="button" value="刷新父窗口" onclick = "refeshParent();"/>
</body>
</html>
你把代码复制下来试一下
你自己调一下吧,找一下哪个方法在IE8下执行不了。去google一下它在IE8下的用法
"http://www.w3.org/TR/html4/loose.dtd">
之后,ie8上也能执行子窗口操作父窗口了,我也按照您说提示的思路,做了改动,但是跟我之前写的代码产生的效果一样:数据并没有动态更新,详细说,情况是这样的:在B窗口中插入一条数据a之后,B窗口关闭了,同时主窗口A貌似刷新了,但并没有显示这条数据a。我再打开B窗口再插入一条数据b之后,主窗口A就显示了之前插入的数据a,但并没有显示最近插入的那条数据b,接下来依次按照之前的顺序操作,每次都能显示插入前前的数据,对最近插入的数据,并不能显示,不明白为什么会这样,还请您多多指点,谢谢你!
function closeWin(){
hasClosed = true;
window.opener.location.reload();
window.close();
}
function addSeed(parmater){
if(parmater == '2'){
if (confirm("登记确认后将不能进行任何操作,是否继续?")){
document.forms[0].action = "<%=request.getContextPath()%>/product/tjgl.do?method=tj_addimport&savep=" + parmater;
document.forms[0].encType = "multipart/form-data";
closeWin();
}else{
url = "";
}
}else{
document.forms[0].action = "<%=request.getContextPath()%>/product/tjgl.do?method=tj_addimport&savep=" + parmater;
document.forms[0].encType = "multipart/form-data";
closeWin();
}
}