用到iframe遍历:
top.$("iframe").each(function(i,n){
//这里写判断iframe和具体的操作
});
例如:
每个iframe都是有自己的id、name和src等等.
在‘编辑完后的提示框’的关闭动作上写以下代码:
top.$("iframe").each(function(i,n){
if($(this).attr("src") == "/mycontroller"){
$(this).attr("src","/mycontroller");
}
});
这样会刷新整个父iframe
如果想更新某个元素的信息,可以这样:
top.$("iframe").each(function(i,n){
if($(this).attr("src") == "/mycontroller"){
$(this).context.contentDocument.getElementById('id_myspan').innerHTML = new_data.myspan;
}
});
这里有个点要注意:
如果是单单更新某个元素的信息,紧接着再次单击编辑弹出子iframe的时候,子iframe显示的信息是旧的信息!
要在js一开始加载信息的时候判断,是否已经编辑过了:
没错编辑成功,都用top去存储新的数据
- - 在渲染数据前判断,如果top没数据,即是没有编辑过的,直接用dialog传过来的数据去渲染编辑页面;
如果top有数据,并且数据的id 和 dialog数据的id是相等的,即是已经编辑过的,用top存储的数据去渲染;如果id不相等,就直接用dialog的数据去渲染。
//用undefined去判断是否为空
if(top['myData'] == undefined){
}