javascript codeigniter 中的下载按钮脚本不起作用
download button script in javascript codeigniter not working
我的网页上有一张图片,我已经为用户提供了编辑图片内容和使用 codeigniter 中的 javascript 下载图片的选项。以下是下载按钮代码:
<div id="chumma" class="col-md-12">
<button id="download" type="submit" onclick="download_image()" name="button" value="Download" class="btn btn-primary" >Download</button>
</div>
function download_image(){
var canvas = document.getElementById("imageCanvas");
image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
var link = document.createElement('a');
link.download = "<?php echo $val['title']; ?>.png";
link.href = image;
link.click();
}
但这不是下载图片,而是重新加载页面,谁能告诉我这里出了什么问题,在此先感谢
尝试将link插入DOM,点击前可能需要触发原生下载
function download_image(){
var canvas = document.getElementById("imageCanvas");
image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
var link = document.createElement('a');
link.download = "<?php echo $val['title']; ?>.png";
link.href = image;
document.body.appendChild(link);
link.click();
setTimeout(() => link.remove(), 0); // setTimeout just in case
}
如果出现 link 瞬间可见的问题,您可以使用 CSS.
隐藏 link
编辑:没有注意到提交按钮,如果您想在 JavaScript 中执行操作,请不要使用提交按钮,因为那样会将 http 请求发送到服务器(提交表格)。如果您想在 JavaScript 中执行操作,请使用 <button type="button">
,它在表单内部也可以使用(不会提交)。
我的网页上有一张图片,我已经为用户提供了编辑图片内容和使用 codeigniter 中的 javascript 下载图片的选项。以下是下载按钮代码:
<div id="chumma" class="col-md-12">
<button id="download" type="submit" onclick="download_image()" name="button" value="Download" class="btn btn-primary" >Download</button>
</div>
function download_image(){
var canvas = document.getElementById("imageCanvas");
image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
var link = document.createElement('a');
link.download = "<?php echo $val['title']; ?>.png";
link.href = image;
link.click();
}
但这不是下载图片,而是重新加载页面,谁能告诉我这里出了什么问题,在此先感谢
尝试将link插入DOM,点击前可能需要触发原生下载
function download_image(){
var canvas = document.getElementById("imageCanvas");
image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
var link = document.createElement('a');
link.download = "<?php echo $val['title']; ?>.png";
link.href = image;
document.body.appendChild(link);
link.click();
setTimeout(() => link.remove(), 0); // setTimeout just in case
}
如果出现 link 瞬间可见的问题,您可以使用 CSS.
隐藏 link编辑:没有注意到提交按钮,如果您想在 JavaScript 中执行操作,请不要使用提交按钮,因为那样会将 http 请求发送到服务器(提交表格)。如果您想在 JavaScript 中执行操作,请使用 <button type="button">
,它在表单内部也可以使用(不会提交)。