js子窗口关闭,父窗口跳转指定页面

有三个A,B,C
A是父窗口;
B窗口是在A窗口中的iframe;
C窗口是弹出的artDialog子窗口;
现在是要C窗口中一个按钮点击,把C窗口关闭,然后B窗口跳转指定页面;

第1个回答  2014-11-23

下面是示例代码,带注释,请仔细阅读:


1、 父窗口 A

<head>
<!-- 引入 artDialog 文件 -->
<link href="./skins/default.css" rel="stylesheet" />
<script src="./artDialog.min.js"></script>
<script>
// 全局变量,保存弹窗窗口句柄
var dialog;
// 定义 弹出窗口操作 函数
window.myDialog = function(){
    // 如果之前有已经打开的弹窗,则先将其关闭。
    if (dialog) dialog.close();
    // 弹出窗口
    dialog = art.dialog({
        title: '登录',
        content: '密码:<input id="login-pw" type="text" value="****" />'
            + '<iframe src="C"><\/iframe>',
        lock: true,
        fixed: true,
        ok: top.closeMyDialog, // 处理窗口关闭操作
        okValue: '登录',
        cancel: function () {}
    });
}

// 定义 关闭窗口操作 函数
window.closeMyDialog = function(){
    // 处理弹出窗口的内容
    alert(document.getElementById('login-pw')value);
    // 关闭窗口
    dialog.close();
    // 改变 iframe 框架指向
    frames[0].location.href = 'anywhere_u_want.htm';
}
</script>
</head>
<body>
<!-- iframe 框架结构 -->
<iframe src="B"></iframe>



2、 Iframe 窗口 B (在 A 中)

<input type="button" onclick="top.myDialog();" value="弹出窗口" />

3、 其实上面两个的结构应该足够使用了。但如果你非要在 C 窗口中操作,那么 C 中的按钮可以这样:

<input type="button" onclick="top.closeMyDialog();" value="关闭" />


=====

总结:


其实说穿了,就是通过 top 对象来获取顶层窗口,进行对应的操作。通过 frames 来对子框架进行操作。


以上,请采纳,请给分。

本回答被提问者和网友采纳
相似回答