关闭子页面后刷新主页面

时间:2017-05-03 10:41:13

标签: javascript jquery

基本上,我有一个页面,其中包含javascript文件。在js文件中 我有2个函数叫做函数a()和函数b()。内部函数“A”我调用了弹出窗口。加载子弹出窗口后,我有一个名为interactive的函数,它进行ajax调用。如果结果为true,我需要关闭子页面,然后在主页面中调用函数“B”。下面是示例代码。问题是我无法在子页面中引用功能“B”并调用主页面。

function a() {
    var strWindowFeatures = "location=yes,scrollbars=yes,status=yes";
    var URL = path of the url
    var win = window.open(URL, "_blank", strWindowFeatures);
}

function b() {
    calling a
    function to relaod the page. //
}


function InterActive(encodeText) {

    url: url
    cache: false,
    async: false,
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    data: {},
    dataType: 'json',
    success: function (data) {
        if (data === true) {
            alert('record updated');
            window.close();
            // i need to call the function b() in the child page..

        }
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert(jqXHR);
        alert(textStatus);
        alert(errorThrown);
    }
});

2 个答案:

答案 0 :(得分:0)

您可以这样做,即您打开的窗口会收到一个onbeforeunload事件,该事件会在父窗口中调用您的重新加载函数。

一个例子是以下

function reloader() {
  if (!reloader.id) {
    reloader.id = 0;
  }
  document.querySelector('#reloadCount').innerHTML = ++reloader.id;
}

function openWindow() {
  var win = window.open('about:blank', 'blank', 'width=640,height=480');
  win.document.write('<html><head><body><h1>Reloads on close</h1></body></html>');
  win.addEventListener('beforeunload', function() {
    reloader();
    return true;
  });
}

您可以在jsfiddle here上测试(stacksnippets中不允许使用window.open)

答案 1 :(得分:-1)

我认为您需要在子页面中添加功能b(),以便轻松访问,所以请查看。