Как вернуть значение из GM_xmlhttprequest
Я знаю, что это уже было задано, но эти сообщения не отвечали на мой вопрос.
Вот код:
console.log(searchKD("女"));
function searchKD (input) {
var mtable, tr, td, i, href, kanji;
GM_xmlhttpRequest ( {
method: "GET",
url: "http://www.kanjidamage.com/kanji",
context: href,
onload: function (response) {
var parser = new DOMParser ();
var doc = parser.parseFromString (response.responseText, "text/html");
mtable = doc.getElementsByClassName ("table")[0];
tr = mtable.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td");
for (var j = 0; j<td.length; ++j) {
if (td[j].innerHTML.indexOf(input) > -1) {
kanji = td[j].innerHTML.toString();
href = KanjiDamage + kanji.match(/href="([^"]*)/)[1];
}
}
}
}
} );
return href;
}
Все здесь работает отлично, за исключением того, что возвращает "неопределенное". Я знаю, что это потому, что это асинхронно, но я не смог обойти это.
Пожалуйста, ответьте с примером кода.