Как вернуть значение из 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;
}

Все здесь работает отлично, за исключением того, что возвращает "неопределенное". Я знаю, что это потому, что это асинхронно, но я не смог обойти это.

Пожалуйста, ответьте с примером кода.

0 ответов

Другие вопросы по тегам