Javascript这给出了错误的价值内部准备回调子窗口

时间:2016-06-22 17:43:54

标签: javascript popup this

这个答案https://stackoverflow.com/a/4196018/545430表明"这个"在JQuery回调中使用时,对象将引用要添加回调的所选元素。但是,在设置子窗口的就绪回调时,这似乎不起作用:

var new_window = window.open('./NewWindow.aspx', '_blank');
$(new_window.document).ready(function () {
    console.dir(this);
});

在上面的示例中,这显然是父窗口的文档,而不是" NewWindow"文档。

1 个答案:

答案 0 :(得分:2)

'准​​备好'事件正在文件中发生 https://learn.jquery.com/using-jquery-core/document-ready/

如果您想在事件处理程序中使用不同的内容覆盖this,则必须bind不同的上下文:

var new_window = window.open('./NewWindow.aspx', '_blank');
$(new_window.document).ready(function () {
    console.dir(this);
}.bind(new_window));

更多详情https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind