JavaScript密码生成器 - 输出

时间:2017-05-23 10:24:57

标签: javascript html arrays function button

(我是编程新手)

程序:我制作了一个相对简单的JavaScript程序,当你点击一个按钮时会生成一个密码。

问题:使用document.write显示密码,整个页面都会被覆盖,这意味着该按钮已被删除,您无法生成新密码。 因此,我希望密码进入ID为“pw”的段落。

请注意,在JSFiddle中禁用了 document.write ,因此结果设置为在控制台中显示。 JSFiddle:https://jsfiddle.net/3qh01ctp/1/

非常感谢您提前,任何帮助/建议表示赞赏!

var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

function generate () {
  for (i = 0; i < 10; i++) {
    randomLetter = arr[Math.floor(arr.length * Math.random())];
  console.log(randomLetter);
  }
}
<!DOCTYPE html>
<html>
<head>
  <button onclick="generate();">Generate password</button>
</head>
<body>
  <p id="pw">
    <!-- password should go here -->
  </p>
</body>
</html>

5 个答案:

答案 0 :(得分:4)

您不应该使用kotlin-runtime.jar。如今,您通常选择一个元素,然后将内容推送到其中。您可以通过例如选择元素以下方法之一:

  • document.write():按ID选择元素,速度很快
  • document.getElementById():通过CSS选择器选择一个元素(不是那么快,但足够好)

所以这是一个例子:

document.querySelector()

或使用var pw = 'password'; document.getElementById('pw').textContent = pw;

querySelector

我在节点上使用了var pw = 'password'; document.querySelector('#pw').textContent = pw; ,因为它可以防止意外的HTML注入。如果您明确要允许HTML,则还可以使用.textContent

最后,这里是完整的例子(包括执行该功能的按钮):

.innerHTML
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

function generate () {
    var password = "";
    for (i = 0; i < 10; i++) {
        var randomLetter = arr[Math.floor(arr.length * Math.random())];
        password += randomLetter;
    }
    document.getElementById("pw").textContent = password;
}

document.querySelector('#button-clicker').addEventListener('click', function (event) {
    event.preventDefault();
    generate();
});

答案 1 :(得分:1)

我更新了您的代码,请检查。使用你的标签你可以在上面放置文字。在循环中,在循环后继续附加到randomLetter,只需将其赋予p标记的{0} {/ p>的innerHTML即可

&#13;
&#13;
document.getElementById("pw").innerHTML = randomLetter;
&#13;
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
var randomLetter ='';
function generate () {
  for (i = 0; i < 10; i++) {
    randomLetter += arr[Math.floor(arr.length * Math.random())];
  
  }
   document.getElementById("pw").innerHTML = randomLetter;
  randomLetter ='';
}
&#13;
&#13;
&#13;

答案 2 :(得分:1)

&#13;
&#13;
@IBAction func startDownload(_ sender: UIButton) {


    let urlString = "\(posts[selectedIndexPath].link)"

    DispatchQueue.global(qos: .default).async(execute: {
                 print("downloadVideo");
        let url=NSURL(string: urlString);
        let urlData=NSData(contentsOf: url! as URL);

        if((urlData) != nil)
        {
            let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]

            let fileName = urlString as NSString;

            let filePath="\(documentsPath)/\(fileName.lastPathComponent)";

            DispatchQueue.main.async(execute: { () -> Void in

                print(filePath)
                urlData?.write(toFile: filePath, atomically: true);
                print("video Saved to document directory of app");
                self.downloadButton.alpha = 0;
                self.progressView.alpha = 0;
                self.cardboardButton.alpha = 1;
                self.videoButton.alpha = 1;
                self.removefile.alpha = 1;

            })
        }
    })



}
&#13;
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

function generate () {
  var randomLetter="";
  for (i = 0; i < 10; i++) {
    randomLetter += arr[Math.floor(arr.length * Math.random())];
    
  //console.log(randomLetter);
  }
document.getElementById("pw").innerText =randomLetter ;
}
&#13;
&#13;
&#13;

答案 3 :(得分:0)

你要做的是,填写内容,即Seprate HTML Body内容中的Random Generated Password,它可以是Paragraph或Div,使用java脚本代码:

document.getElementById('YOUR FIELD ID').innerHTML = "YOUR TEXT";

答案 4 :(得分:-1)

在脚本代码中执行此操作。

var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

function generate () {
var randomLetter = "";
  for (i = 0; i < 10; i++) {
    randomLetter += arr[Math.floor(arr.length * Math.random())];
  }
  
  var paraElem = document.getElementById("pw");
  var t = document.createTextNode(randomLetter);
  paraElem.appendChild(t)
}