我从弹出窗口刷新父窗口,然后调用父窗口jquery表达式不起作用。 但是当我在popup.php中的closePopup函数中启用警报调用时,一切正常。 - 我怎么了?
file test1.html
<script type="text/javascript" src="jquerymin.js"></script>
<script type="text/javascript">
var visible_status=0;
function selectFn(sno){
if(sno==1){
$('#id2').hide();
$('#id1').show();
visible_status=1;
}else if(sno==2){
$('#id2').show();
$('#id1').show();
visible_status=2;
}
}
function popitup(url) {
newwindow=window.open(url+'?parent_status='+visible_status,'name','top=300,width=400,height=250');
if (window.focus) {newwindow.focus();}
return false;
}
</script>
<select name='optionw' onchange="selectFn(this.options[this.selectedIndex].value);">
<option value="">Select</option>
<option value="1">Div1</option>
<option value="2">All</option>
</select>
<div id='id1' style="display:none;">DIV1</div>
<div id='id2' style="display:none;">DIV2</div>
<button onclick="popitup('popup.php');">popUp</button><br>`
我的popup.php文件
<script type="text/javascript" src="jquerymin.js"></script>
<script type="text/javascript">
var parent_status='<? echo $_GET[parent_status];?>';
function closePopup() {
window.opener.history.go(0);
//alert('going to call parent selectFn('+parent_status+')');
window.opener.selectFn(parent_status);
self.close();
}
</script>
...Here editing a part of the main page content...
<input type=button value=close_popup onclick="closePopup();">
关闭此弹出窗口后我需要,
答案 0 :(得分:1)
在尝试执行一些在DOM上运行的代码之前,必须确保父框架已完成加载(因为DOM可能尚未完成)。
JS在浏览器中是同步的,但页面加载不是。实现这一点的最简单方法是挂钩body.onload()
。 IIRC,jQuery为此提供了一个辅助函数。