【发布时间】:2016-08-10 06:26:27
【问题描述】:
我正在尝试编写一个用于娱乐的聊天机器人,它的主要功能之一是表情包查找。我最初是用 Python 编写的,但现在我用 JavaScript 重写它,因为它可以完全在客户端运行。
这是我的 JavaScript meme() 函数:
function meme(srch) {
reqUrl = "http://api.pixplorer.co.uk/image?amount=1&size=tb&word=meme";
memesrch = "";
while (srch) {
memesrch += "+" + srch[0];
srch.slice(1);
}
reqUrl += memesrch;
$.get(reqUrl, function( result ) {
memeUrl = result['images'][0]['imageurl'];
});
return "<a href='" + memeUrl + "'><img src='" + memeUrl + "' style='height: 130px;' /></a>";
}
这是它的原始 Python 函数,如果它可能有帮助的话:
def meme(srch):
reqUrl = "http://api.pixplorer.co.uk/image?amount=1&size=tb&word=meme"
if srch:
memesrch = ""
while srch:
memesrch += srch[0] + "+"
srch = srch[1:]
memesrch = memesrch[:-1]
reqUrl += memesrch
memeUrl = eval(urllib2.urlopen(reqUrl).read())['images'][0]['imageurl']
return "<a href='" + memeUrl + "'><img src='" + memeUrl + "' style='height: 130px;' /></a>"
我的问题是,当我在页面加载/重新加载后第一次在控制台中运行 meme() 时,它说变量 memeUrl 没有定义。然后,从第二次开始,它工作正常。但是,如果我随后键入 meme(["doge"]) 或将数组中的任何字符串,甚至只是像 meme("hello") 这样的字符串提供给 meme() 函数,它不会返回任何内容,甚至不会返回错误。之后,我输入的任何内容都不会返回,甚至不会返回 1+1、3 或 $ 之类的内容。几秒钟后,网页崩溃。以下是部分截图:Screenshot of DevTools、Screenshot of Webpage Crash。
我不知道是什么导致了这些问题,因为我能想到的唯一可能导致此问题的是无限循环,但我的代码中没有。
【问题讨论】:
标签: javascript python google-chrome google-chrome-devtools