幾天來,我一直在努力(沒有成功)在沒有Chrome屏蔽的情況下延遲打開新窗口。延遲對我的任務至關重要,因爲某些動畫必須在打開窗口之前進行,而且我無法承受瀏覽器阻止打開新選項卡。這裏是我的代碼示例:拖延window.open裏面的點擊事件處理程序
element.on("click", function(e){
e.preventDefault();
var self = $(this),
url = self[0].href;
window.setTimeout(function(){
window.open(url);
}, 1000);
});
元素是jQuery對象(錨元素更精確)。我已經注意到,我有更大的成功率,如果我直接通過字符串這樣
window.open("http://example.com");
我試過在資源管理器(沒問題),鉻(問題),火狐(沒問題)和Opera這個解決方案(問題)。我放棄了我的想法,因爲我試過了我能記得的一切。同步ajax調用,人爲觸發點擊,創建假錨點元素和人爲觸發點擊事件。沒什麼工作正常。 獎金問題(以防有人知道如何解決問題):有沒有辦法在任何地方隨時調用window.open &?
你能爲我們提供一個小提琴,或代碼,使我們能夠重現問題?一旦動畫完成它的執行,怎麼樣調用'window.open'? – 2014-10-06 11:43:42
我剛剛檢查了這個小提琴的代碼,http://jsfiddle.net/xeoctj2p/1/,我得到的問題是,彈出式窗口攔截器阻止它,可能是你必須通知用戶允許彈出窗口爲您的網站。 – mido 2014-10-06 11:47:54
@ code-jaff:當然我已經試過了。它更糟。每次執行window.open並在每個瀏覽器上都會彈出阻止程序。 mido22:我不想解決那樣的問題。在更糟的情況下,我會使用window.location.href,但即使這樣也有其缺點。它不會立即重新加載窗口,這是最大的問題。 – AlFra 2014-10-06 12:39:32