2013-01-07 134 views
0

當鼠標懸停在主應用程序的窗口上時,我遇到了一個問題。打開新窗口時可以刪除父窗口嗎?

我使用下面的一行打開新窗口中的JavaScript函數:

window.open(URL, 'Requests', 'location=no,toolbar=no,status=yes,scrollbars=yes,resizable=yes'); 

我注意到,如果我通過資源管理器中打開一個新的IE窗口,將鼠標懸停在我們的主應用程序的窗口不激活本身。即使在這種情況下,主窗口確實使其自身位於由上面的window.open命令創建的彈出窗口的「頂部」。

問題是這樣的:有沒有什麼辦法,當在javascript中打開一個「子」窗口時,將子窗口從父窗口中分離出來?

更多信息:我將ActivateOnHover中的Infragistics WebDataMenu設置爲true,因此用戶無需單擊主菜單項即可查看子菜單選項。不幸的是,該設置使整個菜單欄變得敏銳,以便通過滑動鼠標來激活菜單(並且在彈出窗口處於激活狀態時可悲的是該窗口)。這是我試圖解決的根本問題。

+0

我不知道你可以控制多少,因爲我得到不同的行爲,使用相同的代碼在同一個站點和另一個網站打開一個頁面:window.open(「Default2.aspx」); window.open(「http://www.infragistics.com」); – alhalama

回答

0

最終,我放棄了這項工作。我發現我必須做的是關閉WebDataMenu中的ActivateOnHover,它沒有回答這個問題,並且要求用戶點擊菜單使其下降,但它變成了一個解決方法。

2

window.open();方法將創建一個彈出窗口,它實際上只通過調用的返回值和在彈出窗口中的window.opener屬性通過JavaScript共享關係。

你想要的是一個模態窗口的行爲,當你在「子」彈出框中工作時,它會阻止「父」頁面的交互。

您可以嘗試通過強制在彈出的一個重點和阻止任何模糊的JavaScript(和您的用戶)打,但是這將推動用戶堅果當他們想要去閱讀他們的電子郵件等。(如不推薦)

你也可以使用不那麼標準的showModalDialog();方法,但支持遠不是完全跨瀏覽器,如果你嘗試使用它(IE中沒有右鍵點擊,在IE中放大問題,沒有孫子彈出窗口來舉幾個例子),有很多新問題(再次不推薦)

您可以做的是製作一個類似於許多在線照片查看器的「疊加」彈出窗口,您首先在下面的整個頁面內容上覆蓋鼠標/焦點的遮罩(通常爲半透明),然後用「彈出內容「。只要確保你提供了一個關閉選項,當覆蓋圖被關閉/完成時移除掩碼。

注意,如果你需要支持IE6,你還需要一個iframe墊片(谷歌如果需要的話)

許多UI框架將提供一個「對話」就這樣對你。 (例如jQueryUI)

+1

@Dan由於您已經使用NetAdvantage,所以如果您使用此方法,則可以使用WebDialogWindow提供對話窗口:http://help.infragistics.com/NetAdvantage/ASPNET/Current/CLR4.0/?pagepage=WebDialogWindow_About_WebDialogWindow html的 – alhalama

相關問題