如何从GM_xmlhttprequest返回值

时间:2017-06-19 04:51:10

标签: javascript greasemonkey tampermonkey 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;
}

这里的一切都很完美,除了它返回'undefined'。我知道这是因为它是异步的,但我无法解决这个问题。

请回答一个示例代码段。

0 个答案:

没有答案