アップロードファイル用にMicrosoft Azureデータベースを使用してEmber.jsプラットフォームで開発しています。これらのファイルの内容は機密性が高いため、Azureの安全なアクセスAPIを使用して、ユーザーが約2分間ファイルを表示してからアクセスリンクを期限切れにすることができます。この安全なアクセスリンクは、私のアプリケーションにresponse.fileURL
として返されます。JSを使用してプログラムでSafariの新しいタブを開きます
問題は、私は新しいタブでこのリンクを開く必要があり、私が試した方法はSafariを除いてすべてのブラウザで動作することです。
さて、しばらくの間、「プログラムでサファリで新しいタブを開く」を検索した後、私は(たとえば、http://whoknew.dk/programmatically-opening-a-new-tab-window-on-mobile-safari-55.htmのため)これまでにオンライン見つけたすべての結果は、次のコードのいくつかの解釈を持っている実装を持っています
function openURL(){
var a = window.document.createElement("a");
a.target = '_blank';
a.href = response.fileURL;
// Dispatch fake click
var e = window.document.createEvent("MouseEvents");
// e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(e);
}
openURL();
シンプル
<a target="_blank" href='link.com'>link</a>
が動作しませんし、私がプログラムとにかくこのタブを開くために必要ておりますので、私は無駄に上記の機能を試してみました。この問題は、アプリがAppleのスマートフォンとタブレットでファイルを開くことができないようにしています。また、Safariはユーザーに「ポップアップ」がブロックされたことを通知することさえしないため、実際には他のブラウザでも機能していると簡単に考えられます。
サファリの新しいタブでリンク/ファイルを開くにはどうすればよいですか?