2010-07-20 53 views
0

我不知道這種症狀的確切原因,但在這裏。在我們的網絡應用程序中,我們打電話window.open打開一個新的窗口/選項卡(內部每個人都設置爲在新選項卡中打開)。打開這個新選項卡後,IE8立即將焦點切換到它。window.open和.net WebServices

然後,我們集成了一個Web服務,所以我們稱這個Web服務在返回時會調用一個回調JavaScript函數。我們現在從回調函數中調用window.open。當我們這樣做時,IE8打開新標籤,但不切換焦點。在父頁面和子頁面上調用window.focus什麼也不做。

現在,我知道JavaScript不是線程的,但這是與異步性有關嗎?有沒有辦法讓瀏覽器按預期行事?

回答

2

我相信,默認情況下,如果由於用戶發起的操作(如點擊)而打開了IE,則只會將焦點切換到新標籤。如果window.open調用不是響應UI操作,那麼IE可能會打開後臺中的標籤,就像它是某種彈出式窗口一樣,但顯然它不會被彈出窗口阻止程序阻止。

如果您處於Intranet環境並且可以指定設置,是否嘗試過在選項卡式瀏覽設置對話框中設置「在創建時總是切換到新選項卡」複選框?

+0

*前額巴掌*這非常合理。我們會這樣做。出於興趣,你認爲填充瀏覽器的'event'對象會改變行爲嗎?也許它可能欺騙瀏覽器。 – Anthony 2010-07-20 02:09:37

+0

我懷疑該解決方法會產生任何效果。 IE幾乎肯定會在瀏覽器chrome本身的代碼中檢查這種情況,而不是DOM。 – Josh 2010-07-20 02:15:23