(我是编程新手)
程序:我制作了一个相对简单的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>
答案 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即可
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;
答案 2 :(得分:1)
@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;
答案 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)
}