Javascript 在另一个窗口中侦听事件

Javascript 在另一个窗口中侦听事件,javascript,c#,jquery,webforms,Javascript,C#,Jquery,Webforms,我使用var openedWindow=window.open(…)创建了一个窗口。 我有一个函数,它应该在新窗口中为按钮侦听单击事件,但它从不触发 每当我点击btSearch按钮时,它都会打开另一个窗口并监听#submitButton点击事件 btSearch.Attributes["onclick"] = $@" var openedWindow = window.open(myUrl, "", "toolbar=n

我使用
var openedWindow=window.open(…)
创建了一个窗口。 我有一个函数,它应该在新窗口中为按钮侦听
单击
事件,但它从不触发

每当我点击
btSearch
按钮时,它都会打开另一个窗口并监听
#submitButton
点击事件

 btSearch.Attributes["onclick"] = $@"
                                     var openedWindow = window.open(myUrl, "", "toolbar=no,menubar=no,personalbar=no,width=650,height=399,scrollbars=yes,resizable=yes");
                                     window.onModalExit(openedWindow);";
函数是
aspx
文件

function onModalExit(modalWindow) {
    $('#submitButton', modalWindow.document).ready(function () {
        modalWindow.document.getElementById('submitButton').addEventListener('click', function () {
           console.log('RETURNED CORRECTLY');
           alert('Now');
        });
    });
}

broswer中的每个窗口都是“孤立的”,也就是说,您无法通过编程方式影响其他窗口

这只能由管理所有这些选项卡的浏览器来完成。或者通过安装一个浏览器扩展,我怀疑它们可能有能力在运行的页面中注入内容

编辑:

据我所知,这项工作不能直接进行,你可以:

  • 在要从中读取值的选项卡上创建轮询机制
  • 将值存储在某种服务器(数据库、后端内存等)中
  • 找到一种关联某种ID的方法,以便知道要查找什么
因此,您将通过在PageA->BackEnd->PageB周围走很长一段路来传递值


我很有说服力地说,你不能仅仅通过一个简单的页面就影响/阅读其他选项卡。在用户同意通过安装扩展来授予权限后,您需要更高层的东西,如浏览器本身,或具有插入/检查页面能力的扩展。

我看到的解决您需求的唯一解决方案是使用


但对于这一点,您显然需要某种后端

您可以通过
window.opener.postMessage()
函数将数据从打开的窗口发送到打开的窗口。

我认为您不能附加到另一个窗口的事件,因为明显的安全原因,每个窗口都位于专用沙盒中。您必须在这两个窗口之间设置一个通信系统,如websocket或其他东西。@sjahan但我有一个对该窗口的引用,我可以访问它的DOM和
$('submitButton',modalWindow.document)。ready
工作正常。只有
单击
不起作用。
就绪
是有意义的,因为您已命令加载新页面,但在此之后,该窗口中发生的事情将保留在该窗口中。否则,会有太多的弱点,因为你可以像那样跨站点攻击每个网站。也许你可以像iFrame一样使用
postMessage
?我从来没有试过,但也许它能在你的情况下起作用!即使你拥有这个窗口,你也不会拥有这个文档,除非它和打开者是同一个域。你知道还有其他方法吗?我只需要得到一个值。我马上编辑。您是否“拥有”两个选项卡上的两个页面视图?你能用这两种语言写代码吗?或者您想从某人的其他页面获取值吗?是的,我拥有这两个视图。