Javascript 从Html页面下载表格内容(字符串),无需物理文件
我在事务结束时在HTML页面上生成一些重要信息Javascript 从Html页面下载表格内容(字符串),无需物理文件,javascript,html,Javascript,Html,我在事务结束时在HTML页面上生成一些重要信息 <html> <head> <script type="text/javascript"> function downloadReference(){ } </script> </head> <body> <p> Hello! Thank you for your interest. </p> <table
<html>
<head>
<script type="text/javascript">
function downloadReference(){
}
</script>
</head>
<body>
<p>
Hello! Thank you for your interest.
</p>
<table style="background-color:#ccffcc;border: 1px solid #00cc00" id="referencedata">
<tr>
<td><b>Interest Received Date:</b></td>
<td>22 March 2018</td>
</tr>
<tr>
<td><b>Confirmation Number:</b></td>
<td>J4835K3344</td>
</tr>
</table>
<br/>
<a href="#" onclick="return downloadReference();" download="Reference.html">Download this info!</a>
</body>
</html>
函数downloadReference(){
}
你好谢谢你的关注。
收到利息日期:
2018年3月22日
确认号码:
J4835K3344
现在,我想给用户一个选项来下载这些信息供他参考。我不想在服务器端创建文件
我知道在HTML5中,我们可以在anchor标记中提供download属性,以允许用户下载文件,但我如何动态生成内容而不引用任何物理文件?感谢@bloodyKnuckles的提示。为将来需要这个的人写答案 我已将id添加到我的定位标记:
<a href="#" id="dl"...
返回true代码>是进行下载所必需的
我们不支持像IE这样死气沉沉的浏览器,所以不用担心。你可以做一些类似的事情,这将非常简单。您需要在某个时刻将数据传递到数据url。如果它是用JS呈现的,我建议将数据传递给下面的示例中的函数,并使用侦听器而不是onclick。否则,您可以将其编码为链接上的数据属性,并以这种方式传递。我很高兴更新以更好地解释
function generateFile(dataurl, filename) {
// create a hidden anchor
var link = document.createElement("a");
link.href = dataurl;
link.setAttribute("download", filename);
// programatically click dynamic anchor
var mouse = document.createEvent("MouseEvents");
mouse.initEvent("click", false, true);
link.dispatchEvent(mouse);
return false;
}
document.getElementById('download').onclick = function() {
generateFile("data:text/html, <h1>Your HTML</h1>", "reference.html");
}
函数generateFile(数据URL,文件名){
//创建一个隐藏的锚
var link=document.createElement(“a”);
link.href=dataurl;
link.setAttribute(“下载”,文件名);
//以编程方式单击“动态锚点”
var mouse=document.createEvent(“MouseEvents”);
mouse.initEvent(“单击”,false,true);
link.dispatchEvent(鼠标);
返回false;
}
document.getElementById('download')。onclick=function(){
generateFile(“数据:text/html,您的html”,“reference.html”);
}
您很可能正在寻找数据URI,但浏览器支持确实有所不同。尤其是IE和Edge。这有帮助吗?在内存中创建文件供用户下载,而不是通过服务器:
function generateFile(dataurl, filename) {
// create a hidden anchor
var link = document.createElement("a");
link.href = dataurl;
link.setAttribute("download", filename);
// programatically click dynamic anchor
var mouse = document.createEvent("MouseEvents");
mouse.initEvent("click", false, true);
link.dispatchEvent(mouse);
return false;
}
document.getElementById('download').onclick = function() {
generateFile("data:text/html, <h1>Your HTML</h1>", "reference.html");
}