我正试图找出如何从弹出窗口刷新iframe。
当从主页面调用弹出窗口(添加记录)时,我可以这样做,但我无法为从iframe(编辑记录)中调用的弹出窗口找出答案。
除了驻留在iframe中之外,调用编辑弹出窗口的按钮是Caspio数据页,在页面加载期间由javascript构建。所有页都位于同一域中。
请考虑以下情况。(为了简单起见,我删除了类、标题和其他不相关的项)
主页面:
<div id="vehicles">
<div class="frmHeader">
<h2>Vehicles</h2>
<a onclick="popupWindow('addVehicle.html')"></a><!-- ADD vehicle -->
<a onclick="ifrRefresh('ifrVehicle')"></a>
</div>
<iframe src="lic/vehicle.html" name="ifrVehicle" id="ifrVehicle"></iframe>
</div>
Iframe内容html文件:
<div id="ifrContentVehicle" class="ifrContent killHeader">
<script src="/scripts/e1.js"></script>
<script>try{f_cbload("***","http:");}catch(v_e){;}</script>
</div>
加载后Iframe内容:
<div id="ifrContentVehicle" class="ifrContent killHeader">
<form id="caspioform">
<div>
<table name="cbTable">
<tbody>
<tr>
<td>
<a onclick="popupWindow('editVehicle.html?VehicleID=*')"></a><!--EDITv-->
...
添加车辆:
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.ifrVehicle.location.reload();
}
</script>
这可以刷新名为ifrVehicle的iframe。但是,我不能让它与编辑弹出窗口一起工作。
任何帮助都将不胜感激!
最佳答案
我在这里找到了一个可行的解决方案->https://stackoverflow.com/a/7244062/4381332。
命名主窗口:
window.open('url','windowName');
当弹出窗口关闭时按名称引用它。
window.onunload = refreshWindowByName;
function refreshWindowByName() {
window.open('javascript:window.iframeName.location.reload()','windowName');
}