Ситуация
У нас есть ситуация, когда нам нужно onclick - открыть новую вкладку в браузерах после выполнения запроса XHR/Ajax.
Мы делаем это, устанавливая запрос Ajax синхронно, чтобы сохранить контекст события доверенного клика, и это работает нормально.
Проблема
Однако в последней версии Chrome (36) у нас появляются всплывающие предупреждения, когда вызов Ajax имеет некоторое отставание... Для Chrome достаточно отображать всплывающее предупреждение, а не открывать вкладку как это предполагается. Сам код работает, я могу нажать эту кнопку несколько раз, и он работает все время до тех пор, пока запрос не задержит некоторое отставание. Затем я получаю всплывающее предупреждение...
Вопрос
Есть ли тайм-аут, применяемый к синхронным запросам Ajax, в течение которых он должен быть завершен, чтобы доверенное событие все еще было доступно?
Есть ли способ обойти это? В конце концов, вызов уже синхронный и замораживает все остальное, пока результат не достигнет.
Спасибо.
Обновить JSFiddle
Обновление: я создал JSFiddle, чтобы продемонстрировать проблему: http://jsfiddle.net/23JNw/9/
/**
* This method will give open the popup without a warning.
*/
function performSlowSyncronousRequest() {
$.ajax({
url: '/echo/html',
data: {delay: 2}, //JSfiddle will delay the answer by 2 seconds
success: function(){
window.open('http://www.thirtykingdoms.com'); //this causes the popup warning in Chrome
},
async: false
});
}