Javascript 如何在新窗口中打开jQuery UI对话框?

Javascript 如何在新窗口中打开jQuery UI对话框?,javascript,jquery,function,window,parent,Javascript,Jquery,Function,Window,Parent,我有一个web应用程序,它有许多弹出的对话框,其中包含修改数据模型各种属性的控件。我目前正在使用jQueryUI对话框显示这些对话框。新的要求是用户希望能够从当前窗口弹出对话框。我可以创建一个包含如下控件的新窗口: function OpenSidebarInNewWindow(){ var DialogName = 'AdditionalDetailsDiv'; var OpenWindow=window.open("", "newwin", "height=250, widt

我有一个web应用程序,它有许多弹出的对话框,其中包含修改数据模型各种属性的控件。我目前正在使用jQueryUI对话框显示这些对话框。新的要求是用户希望能够从当前窗口弹出对话框。我可以创建一个包含如下控件的新窗口:

function OpenSidebarInNewWindow(){
    var DialogName = 'AdditionalDetailsDiv';
    var OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no,scrollbars="+scroll+",menubar=no");
    OpenWindow.document.write("<HTML>");
    OpenWindow.document.write("<TITLE>" + DialogName + "</TITLE>");
    OpenWindow.document.write("<BODY>");
    OpenWindow.document.write(window.document.getElementById(DialogName).innerHTML);
    OpenWindow.document.write("</BODY>");
    OpenWindow.document.write("</HTML>");

}
但问题是,我在这些控件上拥有的任何事件处理程序的作用域都是父窗口的窗口。如果window[Function]不存在,是否有任何方法可以修改Function.prototype或子页面上的某些内容来尝试调用window.opener[Function]


如果没有,有人能提出更好的方法来处理这种情况吗?

您可以检查当前窗口中是否存在函数,并调用另一个oneRight,但我是否必须对子窗口中单独使用的每个函数都这样做,或者是否有某种方法可以全局执行此操作?创建另一个包含必要脚本和css的页面…然后可以使用postMessage API在两个窗口之间进行通信因此我试图避免的整个事情是需要为所有控件事件处理程序维护两个不同版本的代码,一个用于嵌入的div,一个用于新窗口。听起来好像没办法解决这个问题。