1
は、私は次のコードを使用してJavaScriptでファイルを保存している:私は、ファイルがダウンロードされると(URL.revokeObjectURLを使用して)URLを取り消すオブジェクトのURLをダウンロードした後で取り消すにはどうすればよいですか?
var a = document.createElement('a');
a.href = URL.createObjectURL(new Blob(['SOME DATA']));
a.download = 'some.dat';
a.click();
。そうすることはいつ安全ですか?
私はa.click()
を呼び出した直後に取り消すことができます(これはうまくいくようですが、安全かどうかはわかりません)。 a
さんのclickイベントリスナーですか?のデフォルトアクションの後に、クリックイベントリスナーを実行させる方法がありますか??
あなたは 'setTimeout'を意味していますか? – Sumurai8
click()はイベントを発生させますが、[MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click)を参照してください。つまり、非同期であるため、現在のJS実行サイクルの後に実行されます。 –
こんにちはスティーブ、あなたは正しいです。私は通常のユーザーのクリックと同じように、click()internalyイベントループクリックイベント(MDNのみのバブリングフェーズに従う)を追加します。しかし、タイマーを設定することで、これらのイベントを処理してもURLオブジェクトの取り消しを延期します。しかし、いつでもより高いtiemoutを設定することができます:) –