我在Firefox中遇到問題。到目前爲止,我的研究告訴我,處理我的問題並不是真的可靠的方法,但我想問一下以防萬一。是否可以在觸發器第二次調用觸發器(Firefox)後將焦點放在幀上?
我有以下的javascript/jQuery來打開按我的網頁上的按鈕觸發一個新的窗口:
alipayTransactionModalTrigger.click(function() {
NIWindow=window.open("<!--ALIPAY_CONF_REDIRECT_URL-->", "NI payment");
alipayTransactionModal.dialog("open");
});
在Chrome和Firefox,這將打開一個新的框架,而框架獲得焦點。這可以。但是,如果用戶將此新框架打開並返回到我的原始頁面。他們能夠點擊按鈕再次觸發此事件。如果發生這種情況,新框架應該重新加載,但在Firefox中,新框架不會在此刷新上拉焦。我不確定爲什麼它會將焦點放在初始的新幀加載上,但是如果使用相同的事件觸發器刷新幀,則不會拉焦。我沒有膽量還沒有在IE中檢查這...
這是一個的那些東西,你不能可靠地控制?或者有沒有辦法做到這一點?請注意,我在上面的代碼初始窗口之後嘗試使用NIWindow.focus()。沒有運氣。
我相信我讀一些有關可能使用警報,但我不知道如何實現所描述的解決方案,我看,這是一個有點哈克的解決方案。
我可以總是打開新窗口「_blank」,這將保證重點,但是新開的框架網址所使用的基於父窗口的參數。我不得不代碼進不去,所以沒有辦法,我加檢查,以確保數據匹配起來,直到我得到迴應此回重定向
那麼,在這個變量就在於在window.open使用的URL參數。例如,假設起初我用戶發送到 www.test.com?test=123 但用戶又回到初始頁面,並改變一些東西,這將導致新的URL看起來像這樣 www.test.com ?測試= 246 如果用戶離開的第一個新窗口打開,並決定就用它代替第二新打開的窗口中,該網站使用的測試= 123,而不是測試= 246 網站的用戶被髮送到是一個paypal類型的網站,所以你可以看到這可能是有問題的。我有邏輯,當然後來檢查這個,以防萬一 – mkohanek
我認爲你應該能夠重寫你的代碼來使用窗口依賴。您可以通過調用窗口中的'NIWindow.location.href =「[next page]」'重定向用戶。 – Halcyon
這樣做完成了我上面的代碼所做的同樣的事情 - 我最初調用'window.open'來打開窗口。然後,如果用戶再次嘗試,我使用'NIWindow.location.href',但它只是重新加載窗口而不關注它 - 焦點保留在父窗口上。 – mkohanek