2017-01-23 83 views
0

我有一個頁面中的iframe。打開新選項卡從iframe javascript事件沒有彈出塊

我iframe中,成功地將數據發送到服務器後,服務器下一個URL響應打開,我想在一個新標籤或父窗口打開下一個URL。

問題我面對的是,瀏覽器將其視爲彈出窗口並將其封鎖。 鉻在它被視爲彈出,在Safari瀏覽器它不會做任何事情。

iframe指向iframe(用REACT編寫) 父URL是main page

以下是造成錯誤的代碼部分。

  this.props.dispatch(actions.init_db(vals, (error,data)=>{ 
       this.setState({loading:false}) 
       if(error){ 
        this.setState({error:error}); 
       }else{ 
        url=data.next_url; 
        var win=window.open(url); 
        win.focus(); 
       } 
      })); 

基本上,actions.init_db()調用一個將值寫入服務器的ajax函數。

服務器比響應與錯誤或數據。如果沒有錯誤,數據包含下一個URL,我想要打開的URL。

任何建議或替代解決方案,這是非常感謝。

回答

0

你不能。如果您從不直接響應用戶操作(例如點擊)的代碼調用window.open,則很可能會被瀏覽器的彈出窗口攔截器阻止。解決方案是確保您直接響應用戶操作而運行該代碼。因此,舉例來說,當您從服務器獲取URL時,請在頁面上顯示一個div,並在其中包含鏈接,供用戶自行打開。

相關問題