現象:在做項目的過程中,使用window.open打開新窗口,在windows系統的ie,firefox,chrome瀏覽器上測試均沒有問題,在蘋果系統的safari瀏覽器上發現有些window.open可以打開選項卡,有些不可以打開
第一種可以打開選項卡
第二種則打不開選項卡
解決方案:百度發現“safari 中沒辦法在回調函數里面執行window.open, 原因是safari的安全機制將其阻擋了”,解決辦法就是在請求之前先打開一個空白窗口,在請求成功的回調函數里面:如果請求錯誤不需要開頁,則將開的空白窗口關掉;否則修改當前打開空白窗口的location地址
注:request_data.post_data()方法是自封的請求函數;postDataSucFun函數是請求成功之后的回調函數,error為0則請求成功,不為0則請求失敗關閉新的空白窗口