問題現象 當我們在一個 ajax 回調中執行 window.open 方法時,新頁面會被瀏覽器攔截。 原因 在 Chrome 的安全機制里,非用戶直接觸發的 window.open 方法,是會被攔截的。 處理 $('#jump-btn').on('click', function () { // 打 ...
- 問題現象
當我們在一個 ajax 回調中執行 window.open 方法時,新頁面會被瀏覽器攔截。
- 原因
在 Chrome 的安全機制里,非用戶直接觸發的 window.open 方法,是會被攔截的。
- 處理
$('#jump-btn').on('click', function () { // 打開一個空標簽頁(此處不會被攔截) var newTarget = window.open(); $.ajax({ data: data, success: function (url) { // 修改新視窗的 url newTarget.location.href = url; } }) });
總之,在用戶交互時首先打開一個空標簽頁,隨後在回調函數中更改 href 即可。