簡體   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