检测HTML个锚标签下载选择
Detect HTML anchor tag download selection
我使用锚标记为我的用户提供一个选项,用于将一些客户端生成的数据下载到一个文件中。我使用以下代码:
function GenerateTextFile (FileType, FileName, FileContents)
{
var data = new Blob ([FileContents], {type: 'text/plain'});
var url = window.URL.createObjectURL (data);
var link = document.createElement ("a");
link.download = FileName + "." + FileType ;
link.href = url ;
link.innerText = " Click here to download" ;
};
稍后我会调用以下命令进行整理:
window.URL.revokeObjectURL (url);
有人能告诉我如何检测到用户点击了锚标签吗?我想删除或更改文本,以免下载被激活两次。
您可以向 link 添加点击监听器。还是出于某种原因您不想这样?
link.onclick = function(){console.log("link was clicked");}
function GenerateTextFile(FileType, FileName, FileContents) {
var data = new Blob([FileContents], {
type: 'text/plain'
});
var url = window.URL.createObjectURL(data);
var link = document.createElement("a");
link.download = FileName + "." + FileType;
link.href = url;
link.innerText = " Click here to download";
link.id = Date.now();
link.setAttribute("onclick", "removeDownload('" + link.id + "')");
let links = document.getElementById("links");
links.appendChild(link);
};
function removeDownload(id) {
document.getElementById(id).remove();
}
<button onclick="GenerateTextFile('txt','test','lorem ipsum');">Create Dummy DL</button>
<div id="links"></div>
注意:文件下载不会在代码段中进行。它虽然在沙箱之外工作。这使用 a
元素的 onclick
事件和动态 id
(纪元),然后只调用 removeDownload
方法,它将通过其 id
并将其删除。
我使用锚标记为我的用户提供一个选项,用于将一些客户端生成的数据下载到一个文件中。我使用以下代码:
function GenerateTextFile (FileType, FileName, FileContents)
{
var data = new Blob ([FileContents], {type: 'text/plain'});
var url = window.URL.createObjectURL (data);
var link = document.createElement ("a");
link.download = FileName + "." + FileType ;
link.href = url ;
link.innerText = " Click here to download" ;
};
稍后我会调用以下命令进行整理:
window.URL.revokeObjectURL (url);
有人能告诉我如何检测到用户点击了锚标签吗?我想删除或更改文本,以免下载被激活两次。
您可以向 link 添加点击监听器。还是出于某种原因您不想这样?
link.onclick = function(){console.log("link was clicked");}
function GenerateTextFile(FileType, FileName, FileContents) {
var data = new Blob([FileContents], {
type: 'text/plain'
});
var url = window.URL.createObjectURL(data);
var link = document.createElement("a");
link.download = FileName + "." + FileType;
link.href = url;
link.innerText = " Click here to download";
link.id = Date.now();
link.setAttribute("onclick", "removeDownload('" + link.id + "')");
let links = document.getElementById("links");
links.appendChild(link);
};
function removeDownload(id) {
document.getElementById(id).remove();
}
<button onclick="GenerateTextFile('txt','test','lorem ipsum');">Create Dummy DL</button>
<div id="links"></div>
注意:文件下载不会在代码段中进行。它虽然在沙箱之外工作。这使用 a
元素的 onclick
事件和动态 id
(纪元),然后只调用 removeDownload
方法,它将通过其 id
并将其删除。