我打开一个窗口:
var popup =window.open(url,'Image', 'directories=no,height=640,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no,width=680');
具有OpenFile(url)功能; 我可以在父窗口中覆盖此功能吗?或者从父窗口将click事件绑定到子窗口中的元素(因为我无法编辑子页面)。 同一域中的父窗口和子窗口。
答案 0 :(得分:0)
以下是我如何做到的:
var popup =window.open(url,'Image', 'directories=no,height=640,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no')
function waitOnloadWindow(){
var body = popup.document.getElementsByTagName("body");
// Not loaded yet
if(!body[0] || !popup.OpenFile){
setTimeout(waitOnloadWindow, 50);
}else{
// Replace child window function here
popup.OpenFile = function(url){ alert('replaced');}
}
}
waitOnloadWindow();
更通用的方法(如果要替换多个函数):
function replaceWindowFunction(win, fnName, fnFunction) {
var body = popup.document.getElementsByTagName("body");
if(!body[0] || !popup[fnName]){ // Wait for loading
setTimeout(function() {
replaceWindowFunction(win, fnName, fnFunction);
}, 50);
}else{
// Replace child window function here
popup[fnName] = fnFunction;
}
}
// Usage:
var popup = window.open("test.html",'Image', 'directories=no,height=640,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no')
replaceWindowFunction(popup, 'OpenFile', function() { alert('replaced'); } );