Продолжение после вопроса о порядке функций XHR Это рекурсивная ситуация, когда sendRequest () создает поле с ссылкой на себя.Эта ссылка для клика содержит переменное слово, которое должно быть передано sendRequest при вызове.
<script type="text/javascript">
function inputReq(){
sendRequest(wordform.word.value)
}
function sendRequest(str){
//we start by removing the now superfluous rows
table=document.getElementById('table')
while(table.rows.length>2){
table.deleteRow(2);
}
var request = new XMLHttpRequest();
console.log('sending request');
request.open('GET', 'http://127.0.0.1:5000/api.html?query='+str, true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
json=request.responseText;
console.log(json);
//json.forEach(function(obj) {
//});
for (word in json){
var row=table.insertRow();
var scoreC=row.insertCell();
var wordC=row.insertCell();
scoreC.innerHTML=json[word];
wordC.innerHTML=word;
wordC.onclick=(function(i) {sendRequest(i);})(word);
}
} else {
console.log("Silence on the line");
}
}
request.send();
}
</script>
<!DOCTYPE html>
<html>
<head>
<title>Query Page</title>
</head>
<body>
<h1>Query Page</h1>
<table id='table' style="width:100%">
<tr><form name='wordform'>
<th>Concept: <input type="text" name="word"></th>
<th><input type="button" onclick="inputReq()" value='Find Associations'></th>
</form></tr>
</body>
</html>
Ответ XHR выглядит следующим образом:
{"milk": 1, "cheese": 3, "bread": 2}
Я следил этосхема но эта строка вызывает функцию вместо добавления ссылки onclick:
wordC.onclick=(function(i) {sendRequest(i);})(word);