Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 过度使用XMLHttpRequest@BradyEdgar,我看不出这会有什么好处。添加一个简单包装本机行为的库不会让OP了解AJAX操作是如何工作的。谢谢您的帮助。在添加它并实际调用loadFile()之后;为了做到这一点,它在我的输出中加入了“unde_Javascript_Return - Fatal编程技术网

Javascript 过度使用XMLHttpRequest@BradyEdgar,我看不出这会有什么好处。添加一个简单包装本机行为的库不会让OP了解AJAX操作是如何工作的。谢谢您的帮助。在添加它并实际调用loadFile()之后;为了做到这一点,它在我的输出中加入了“unde

Javascript 过度使用XMLHttpRequest@BradyEdgar,我看不出这会有什么好处。添加一个简单包装本机行为的库不会让OP了解AJAX操作是如何工作的。谢谢您的帮助。在添加它并实际调用loadFile()之后;为了做到这一点,它在我的输出中加入了“unde,javascript,return,Javascript,Return,过度使用XMLHttpRequest@BradyEdgar,我看不出这会有什么好处。添加一个简单包装本机行为的库不会让OP了解AJAX操作是如何工作的。谢谢您的帮助。在添加它并实际调用loadFile()之后;为了做到这一点,它在我的输出中加入了“undefined”。似乎我不能使用loadFile();将该值传递回generate()函数,并将该值赋给holdPass,它在生成时携带密码。所以这是好消息/坏消息。再次感谢您的帮助! //Main generate password functi


过度使用
XMLHttpRequest
@BradyEdgar,我看不出这会有什么好处。添加一个简单包装本机行为的库不会让OP了解AJAX操作是如何工作的。谢谢您的帮助。在添加它并实际调用loadFile()之后;为了做到这一点,它在我的输出中加入了“undefined”。似乎我不能使用loadFile();将该值传递回generate()函数,并将该值赋给holdPass,它在生成时携带密码。所以这是好消息/坏消息。再次感谢您的帮助!
//Main generate password function
function generatePassword(){
    var x = document.getElementById("passOutput");
    var p = document.getElementById("testP");
    x.value = generate();
    //Make sure they aren't using an insecure number of characters
    checkMaxChars();
    p.innerText = x.value;
}

//Generate a password. 3 passSets for customization, one for passphrase
function generate(){
    var nL = document.getElementById("noLetters");
    var nN = document.getElementById("noNumbers");
    var nS = document.getElementById("noSymbols");
    var pPK = document.getElementById("passWordPhrase");
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var numbers = "0123456789";
    var symbols = "!@#$%^&*()_+~`|}{[]:;?,.-='";
    var maxChars = document.getElementById("maxCharControl").value;
    var generatedPass = "";
    var holdPass = "";
    //Main loop
    for(var i = 0;i < maxChars;i++){
        //Pick random value for each passSet
        var passSet1 = chars.charAt(Math.random() * chars.length);
        var passSet2 = numbers.charAt(Math.random() * numbers.length);
        var passSet3 = symbols.charAt(Math.random() * symbols.length);
        //if a checkbox is selected, clear out that value
        if(nL.checked == true){passSet1 = "";}
        if(nN.checked == true){passSet2 = "";}
        if(nS.checked == true){passSet3 = "";}
        //Randomly select a set to be added to holdPass, or not if it is empty.
        var r = Math.floor((Math.random() * 4) + 1);
        if(r == 1){if (passSet1 == ""){i--}else{holdPass += passSet1;}}
        if(r == 2){if (passSet2 == ""){i--}else{holdPass += passSet2;}}
        if(r == 3){if (passSet3 == ""){i--}else{holdPass += passSet3;}}
        if(r == 4){
        if(pPK.checked == true){
            //get the value from loadFile(); and apply it to passSet4, add that to holdPass.
        }}
    }
    generatedPass = holdPass;
    console.log("Max Characters:" + maxChars);
    console.log("passSet1:" + passSet1);
    console.log("passSet2:" + passSet2);
    console.log("passSet3:" + passSet3);
    console.log("Iteration:" + i);
    console.log("Random Position:" + r);
    console.log("Password:" + holdPass + "::::" + holdPass.length);
    //return password
    return generatedPass;
}

//Make sure they didn't select all the checkboxes
function checkBoxes(){
    var nL = document.getElementById("noLetters");
    var nN = document.getElementById("noNumbers");
    var nS = document.getElementById("noSymbols");
    var pP = document.getElementById("passWordPhrase");
    var nA = document.getElementById("noticeArea");
    var nT = document.getElementById("noticeAreaText");
    if(nL.checked == true && nN.checked == true && nS.checked == true){
        nL.checked = false;
        nN.checked = false;
        nS.checked = false;
        nA.style.display = "block";
        nT.innerHTML = "You cannot select all checkboxes at once.";
        window.setTimeout(hideNotice,5000);
    }
    else{
        nA.style.display = "none";
        nT.innerHTML = "";
    }
}
//make sure the max characters is greater than 8
function checkMaxChars(){
    var maxChars = document.getElementById("maxCharControl").value;
    var nA = document.getElementById("noticeArea");
    var nT = document.getElementById("noticeAreaText");
    var x = document.getElementById("passOutput");
    console.log(maxChars);
    if (maxChars < 8){
    x.value = "";
    nA.style.display = "block";
    nT.innerHTML = "You cannot generate a password less than 8 characters in length for security reasons.";
    window.setTimeout(hideNotice,7000);
    }
}
//hides the notice area div once the message is completed
function hideNotice(){
    var nA = document.getElementById("noticeArea");
    var nT = document.getElementById("noticeAreaText");
    nA.style.display = "none";
    nT.innerHTML = "";
}
//Load file
function loadFile() {
    var xhttp = new XMLHttpRequest();
    var x;
    xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        x = this.responseText;
        parseResponse(x);
        }
    }
    xhttp.open("GET", "wordList.csv", true);
    xhttp.send();
    return x;
}
//Format response
function parseResponse(x){
    console.log("MADE IT HERE!");
    var dS,sV1,rPos;
    dS = x.split(",");
    for(var i =0;i < dS.length;i++){
        sV1 = dS[i];
    }
    x = sV1;
}
function loadFile() {
    var xhttp = new XMLHttpRequest();
    var x;
    // The onreadystatechange callback function will execute
    // at some future point after loadFile has completed, so
    // you can only gain access to the AJAX result from within
    // that function.
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        x = this.responseText;
        parseResponse(x);
        return x;
      }
    }
    xhttp.open("GET", "wordList.csv", true);
    xhttp.send();   
}