2017-10-04 71 views
1

我想在用戶點擊插件視圖中的按鈕時打開網址。但網絡插件是拋出錯誤。從outlook webaddin打開網址時彈出窗口阻止了錯誤

我的代碼,打開網址:

let a = document.createElement("a"); 
a.setAttribute('target', '_blank'); 
a.setAttribute("style", "display: none"); 
document.body.appendChild(a); 
a.href = finalUrl; 
a.click(); 
document.body.removeChild(a); 

錯誤消息:

enter image description here

應用程序從存儲,因爲這個錯誤的拒絕。我怎樣才能克服這個錯誤?

我不想使用Dialogue API,它不會在瀏覽器中打開網址。

回答

1

一般規則是打開一個窗口將始終被阻止,當它不是直接導致的用戶操作。有關更多信息,請參閱此SO問題:Avoid browser popup blockers

因爲您試圖模擬click()而觸發彈出窗口。由於這不是直接的用戶操作,因此此操作將被所有主流瀏覽器標記。

您需要向用戶展示一個可點擊的元素(鏈接,按鈕等),以打開一個新窗口。

+0

這裏我沒有渲染時的url。當用戶點擊按鈕時,我動態生成亞馬遜S3網址並打開它。什麼是處理這些情況的工作? – Rajeev

+0

您應該在該按鈕的click事件處理程序中生成'URI'並調用'window.open'。當你將該調用更深入調用堆棧時,與阻塞者發生衝突的地方是。另一種方法是讓用戶點擊按鈕,然後在URI準備就緒時向他們展示另一個按鈕。 –

相關問題