提问者:小点点

如何使用函数generate()生成下载按钮


我正在制作一个密码生成器网站(这是为我自己),我想知道我是否可以制作一个下载按钮,下载一个。txt文件和文件内生成的密码。

您可以访问这里:https://astr-ghe.tk

这是我的生成函数代码:

//generate random password
function generate(){

    //set password length/complexity
    let complexity = document.getElementById("slider").value;

    //possible password values
    let values = "ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()_+";

    let password = "";

    //create for loop to choose password characters
    for(var i = 0; i <= complexity; i++){
        password = password + values.charAt(Math.floor(Math.random() * Math.floor(values.length - 1)));
    }

    //add password to textbox/display area
    document.getElementById("display").value = password;

    //add password to previously generated passwords section
    document.getElementById("lastNums").innerHTML += password + "<br />";

}

共3个答案

匿名用户

你可以使用这里写的函数生成一个文本文件,然后点击下载。

function download(filename, text) {
  var element = document.createElement('a');
  element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
  element.setAttribute('download', filename);

  element.style.display = 'none';
  document.body.appendChild(element);

  element.click();

  document.body.removeChild(element);
}

然后根据需要调用download,即在generate:

function generate() {

    let complexity = document.getElementById("slider").value;
    let values = "ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()_+";
    let password = "";

    for(var i = 0; i <= complexity; i++)
        password = password + values.charAt(
            Math.floor(Math.random() * Math.floor(values.length - 1))
        );
    
    download('password.txt', password);
}

此行为被StackOverflow阻止,请查看此JSFiddle以获取示例。

匿名用户

这将创建并保存您的密码文件

 function downloadDemo(password) {
     var fso, f;
     ForWriting = 2;
     fso = new ActiveXObject("Scripting.FileSystemObject");
     f = fso.OpenTextFile("c:\\"+password+".txt", ForWriting, true);
     f.Write(password);
     f.Close();
 }

匿名用户

有没有可能。 您只需创建一个函数来生成一个新的锚标记,该标记带有指向您想要的文件名的下载链接。 如果将链接的href设置为要下载的编码文本,则该链接将被下载到一个名为download属性的文件中,该文件的内容为href属性

null

function download(filename, text) {
    var element = document.createElement('a');
    element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
    element.setAttribute('download', filename);

    element.style.display = 'none';
    document.body.appendChild(element);

    element.click();

    document.body.removeChild(element);
}
<button onclick="download('password.txt','your Content here')">Download</button>