基本上,我有一个页面,其中包含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);
}
});
答案 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(),以便轻松访问,所以请查看。