有沒有一種方法可以確定在父頁面的window.open()javascript命令打開的子頁面後面的代碼中?確定是否通過window.open()命令打開了aspx頁面
彈出頁面包含其他頁面使用的用戶控件,這些用戶控件不是從window.open()命令產生的,我想在用戶完成其任務後動態添加關閉頁面的功能子頁面。
這是一個ASP.NET C#3.5應用程序。
有沒有一種方法可以確定在父頁面的window.open()javascript命令打開的子頁面後面的代碼中?確定是否通過window.open()命令打開了aspx頁面
彈出頁面包含其他頁面使用的用戶控件,這些用戶控件不是從window.open()命令產生的,我想在用戶完成其任務後動態添加關閉頁面的功能子頁面。
這是一個ASP.NET C#3.5應用程序。
你可以通過查詢字符串中的標誌來指示窗口從哪裏產生?
可能是錯誤的,但我不認爲有一個簡單的直接方法來做到這一點。您始終可以嘗試通過不同的網址進行識別,例如「MyChildForm.aspx?從= winopen」
- 編輯 - 通過Galwegian
毆打它在JavaScript您可以檢查是否window.opener是空
你可以在用戶控件添加一些JavaScript來測試window.opener是否爲非null,並在此基礎上隱藏或顯示關閉頁面UI。
對子窗口的請求可能會有一個指向父頁面的HTTP Referer
(引用者)標題。您可以在後端檢查,或在客戶端檢查window.opener
。
我試過這個解決方案,當我嘗試獲取Request.UrlReferrer.AbsolutePath時,它拋出一個NullReferenceException – 2008-12-17 17:28:52
我在用戶conrtrol上創建了一個屬性,以表明它是否包含由彈出窗口產生的頁面 – 2008-12-17 17:45:40