【发布时间】:2016-02-01 20:54:06
【问题描述】:
所以,差不多我的脚本遇到了问题。 我正在尝试制作一个下载脚本(仅限内存,因此无需使用 HTML/PHP 进行下载,这会导致服务器加载超出我的预期)。 我所做的是从这里 (credit Matěj Pokorný) 获取脚本。 重点是下载一个随机数的txt文件,它被分配了一个var“x”, 这个 x 在同一个脚本中定义。 x 定义为随机数 (1-10 * 1000 FLOORED) 所以下载时它会是 1234.txt。 不幸的是,我不知道如何在 onclick 中定义变量,有人愿意为我解决这个问题吗? 我尝试移动变量并将 's 放在 txt 和整个内容和所有内容周围,但无济于事。 我很抱歉这是多么愚蠢,但也许我疯狂的愚蠢问题可以帮助其他人。
JSFiddle 上的脚本:https://jsfiddle.net/Xevion/btpmweb9/1/
HTML
<h1>Z</h1>
<p>Z</p>
<button onclick="download(x'.txt', 'Hello world!');" type="button" class="btn btn-lg btn-success btn-block">Download</button>
Javascript
var x = Math.floor((Math.random() * 1000) + 1);function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
pom.setAttribute('download', filename);
if (document.createEvent) {
var event = document.createEvent('MouseEvents');
event.initEvent('click', true, true);
pom.dispatchEvent(event);
}
else {
pom.click();
}
【问题讨论】:
-
在你的函数中做所有事情。不要尝试将
x'.txt'传递给它。 -
@Teepeemm 我有点希望我可以在外部做,但是没有其他选择吗?没有办法提及变量并在变量中组合部分文本? (foo= x+(.txt) x=?)
标签: javascript html random download onclick