2

考虑以下:

  1. 窗口打开一个弹出窗口

  2. 弹出窗口包含一个可以由按钮触发的 javascript 函数

  3. 函数接受两个预定义的参数并关闭弹出窗口

这就是 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);
4

0 回答 0