2017-10-04 5 views
1

ユーザーがプラグインビューでボタンをクリックしたときにURLを開こうとしています。しかし、Webアドインはエラーをスローしています。Outlook WebaddinからURLを開く際のポップアップブロックエラー

私のURLを開くためのコード:

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がありません。ユーザーがボタンをクリックすると、amazon s3 urlが動的に生成されて開きます。これらのシナリオを処理するための回避策は何ですか? – Rajeev

+0

'URI'を生成し、そのボタンのclickイベントハンドラ内で' window.open'を呼び出す必要があります。ブロッカーを実行するのは、コールスタック内でそのコールを深く配置する場合です。代わりに、ユーザーにボタンをクリックさせ、URIが準備ができたら別のボタンを表示させることもできます。 –

関連する問題