JavaScript-在open页面调用父页面Js方法的问题

在一个系统的主帧MainFrame中加载了页面A(A页面中有个JS方法叫做A(),来获得当前页面的相关数据)中用window.open打开一个新页面B,在B页面中需要通过... 在一个系统的主帧MainFrame中加载了页面A(A页面中有个JS方法叫做A(),来获得当前页面的相关数据)中用window.open打开一个新页面B,在B页面中需要通过opener.A()来调用父页面的A()方法,一般情况下是没有问题的,但是一旦MainFrame帧中加载了新的页面,比如C,这是在弹出来的B页面调用opener.A()就会报错,这个报错可以理解,因为他的父页面A已经不存在了,被C页面代替了。其实这个问题是可以解决的,只是要改一下系统框架和数据组织结构,来绕道解决,但这样有点麻烦,我想问的就是在不改变系统设计和代码的情况下,怎样才能有效解决这个问题呢? 展开
 我来答
pieryon
推荐于2016-04-16 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14411 获赞数:166863
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
当弹出子窗口使用的是 window.open();
方法时可以在子窗口使用:
1 . parant.method();
2 . opener.method();
两个方法调用父窗口的方法!

当弹出窗口使用的是模态窗口 window.showModelDialog();方法时可以在子窗口使用:
1 . var parentObj = window.dialogArguments;
parentObj.method();
方法调用父窗口的方法!

建议使用方法时考虑清楚弹出窗口究竟是什么模式的对话框,如果不清楚建议使用:

try{
opener.method();//弹出的是普通窗口
}catch(e1){
try{
var parentObj = window.dialogArguments;//弹出的是模态窗口
parentObj.method();
}catch(e2){//有可能父窗口没有这个方法!
}
百度网友a435633
推荐于2018-03-07 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
window.opener.A = window.opener.A || function() {
alert('父窗口已被刷新,请重新打开本窗口')。
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tale12
2010-01-15 · TA获得超过551个赞
知道小有建树答主
回答量:1158
采纳率:0%
帮助的人:710万
展开全部
你可以试试jQuery或者Ext JS,都可以动态导入JavaScript外部文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2f25bec
2010-01-15 · TA获得超过588个赞
知道小有建树答主
回答量:977
采纳率:0%
帮助的人:847万
展开全部
window.opener
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式