繁体   English   中英

如何使用jQuery / JavaScript打开弹出窗口/标签(ASPX登录页面),然后将值传递给已打开的窗口/标签上的DOM就绪事件?

[英]How do I use jQuery/JavaScript to open a Popup Window/Tab (ASPX Login Page) & then pass values to opened window/tab on DOM Ready Event of it?

当前,我们有两个asp.net 2.x Web应用程序,我们需要执行以下功能:

我们希望从一个应用程序在新选项卡中自动登录到另一个Web应用程序; 使用相同的浏览器实例/窗口。

因此,过程为:

使用第二个系统URL /登录页面打开新窗口/标签页等待弹出窗口/标签页加载(DOM准备好了吗?)

OnPopupDomReady {获取用户名,密码,PIN控件(jQuery选择器)并在代码中填充,然后单击“登录”按钮(全部以编程方式)。 }

我目前正在使用JavaScript打开窗口,如下所示:

<script type="text/javascript">
  $(document).ready(function () {
    $('a[rel="external"]').click(function ()
       {
         window.open($(this).attr('href'));
         return false;
       });
      });  
</script>

如果可能,我想使用jQuery链接功能来扩展上述方法,以便可以将DOM Ready事件附加到弹出页面,然后使用该事件在弹出页面后面的代码上调用方法以自动登录。 与此类似(注意:以下代码示例不起作用,在这里尝试并帮助说明我们正在尝试实现的目标)...

 <script type="text/javascript">
    $(document).ready(function () {
      $('a[rel="external"]').click(function () {
        window.open($(this).attr('href').ready(function ()
        {
           // Use JavaScript (Pref. jQuery Partial Control Name Selectors) To Populate Username/Password TextBoxes & Click Login Button.
        })
      });

    });  
  </script>

我们的体系结构如下:我们都有两种产品的源代码(ASP.NET WebSite),它们在不同的应用程序下运行。 IIS中的池。

当使用window.open打开窗口时,新窗口将获得一个名为window.opener的属性,该属性引用父窗口。 因此,子窗口中的代码可以调用父窗口中的函数,例如:

在窗口A中:

// Declared at global scope => ends up as property on `window`
function phoneHome(str) {
    alert(str);
}

在窗口B(子窗口)中:

$.ready(function() {
    if (window.opener && window.opener.phoneHome) {
        window.opener.phoneHome("Hi, Ma!");
    }
});

(在子窗口中使用$.ready要求子窗口已加载jQuery。)

上面我所做的就是让子窗口在父窗口中触发一条带有消息的函数,但是函数调用当然可以携带您想要的任何数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM