angularjs 打开窗口并在窗口上运行函数

monwx1rj  于 2022-11-21  发布在  Angular
关注(0)|答案(3)|浏览(176)

我想打开一个新窗口,这个窗口有一个对象列表,这些对象应该根据上一个窗口中的选择进行过滤。我想我可以通过一个函数过滤列表,但是我如何运行这个函数呢?
这就是我所能做到的:

var popup = window.open('pageURL');
    $(popup.document).ready(function() {
        // this is where function should be
        popup.alert('HelloWorld');
    });

但如何将警报更改为函数?
如果我的其他应用程序上有一个函数function test() { alert('HelloWorld'};我如何从我的第一个应用程序运行此函数?
无法将popup.alert('HelloWorld');popup.test();交换。

enxuqcxy

enxuqcxy1#

您需要对打开的窗口的引用来调用新窗口中的函数,例如:

var oNewWindow = window.open("new.window.url", "mywindow");
oNewWindow.onload = function(){oNewWindow.window.newWindowFunction();};
wgmfuz8q

wgmfuz8q2#

我最终得到了这个解决方案

var popup = window.open('http://s234-0057/actiontracker/SiteAssets/Avvik/html/app.aspx');

var readyStateCheckInterval = setInterval(function() {
    if (popup.document.readyState === "complete") {
        clearInterval(readyStateCheckInterval);
        popup.test();
    }
}, 50);

在这里我检查弹出窗口是否准备好了,如果准备好了,取消检查并运行函数。解决方案来自top answer on this question,by @this.lau_

qnakjoqk

qnakjoqk3#

你 可以 这样 写 :

function myFunction(){
    alert('HelloWorld');
}

var popup = window.open('pageURL');
$(popup.document).ready(function() {
    popup.eval(myFunction + "");
    popup.myFunction();
});

中 的 每 一 个
包含 此 代码 文件 中 myFunction 将 在 具有 pageURL 地址 页面 中 运行

相关问题