考虑以下:
窗口打开一个弹出窗口
弹出窗口包含一个可以由按钮触发的 javascript 函数
函数接受两个预定义的参数并关闭弹出窗口
这就是 JS 的样子
<script>
function dismissPopup(win, myId) {
// does some stuff I don't want for THIS routine
win.close();
}
</script>
这是弹出窗口的 HTML 的样子
<a id="#bar_1" onclick="opener.dismissPopup(window, '1'); return false;">
now I want this text to be available to window without breaking
dismissPopup for other implementations
</a>
<a id="#bar_2" onclick="opener.dismissPopup(window, '2'); return false;">
etcetera
</a>
我尝试过的(窗口)
var win = window.open(url);
win.focus();
var original_dismissPopup = window.dismissPopup;
window.dismissPopup = function (win, myId) {
var FOO = $(win.document.body).find('#bar_' + myId).val();
alert(FOO);
original_dismissPopup.apply(this, arguments);
};
var X = "I need FOO here"
结果alert(FOO)
确实给了我正确的价值。但是我不太明白如何在函数范围之外获取变量。
另外,如果我注释掉弹出窗口根本没有解除的警报,我对装饰现有功能的理解似乎是错误的。
感谢您的任何指导。
更新:
这似乎可以解决问题,但我认为我仍然做错了什么:
setTimeout(function() {
alert(FOO);
}, 1500);