a(HTML)
anchor
noreferrer
noopener
阻止連結後的網站使用window.opener
nofollow
$ rel="noreferrer noopener nofollow"
現在加上target="_blank"後,瀏覽器就會自動帶上rel="noopener"的操作,不需另外追加
noreferrer則有可能會對來源解析造成障礙
例如在同網站內的其他頁面開啟客戶服務頁面時,會喪失是從哪個頁面前來的資訊
只應該在明確確定不把參照位置傳送給目的網站時才使用
code:javascript
const download = (jsondata) => {
const data = JSON.stringify(jsondata)
const filename = 'download.json'
const type = 'application/json'
const file = new Blob(data, { type }); const url = URL.createObjectURL(file);
const a = document.createElement('a');
a.href = url;
a.download = filename;
a.click();
setTimeout(() => {
URL.revokeObjectURL(url);
}, 0);
}
缺點:用於串連請求時,快取會儲存在記憶體上,以及無法從瀏覽器的UI上看到下載進度
替代方案