Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据用户输入打开谷歌搜索_Javascript - Fatal编程技术网

Javascript 如何根据用户输入打开谷歌搜索

Javascript 如何根据用户输入打开谷歌搜索,javascript,Javascript,我正在使用JavaScript构建聊天机器人,现在我想让它在谷歌上搜索东西 我想做的是键入任何内容,然后函数将窗口打开到谷歌页面。例如,如果我键入googlecars它将打开一个带有cars链接的页面:https://www.google.com/search?q=cars 这可以用JavaScript实现吗 这就是我目前所做的: function takeInput(e) { // enter === 13 if(e.which != 13) { retur

我正在使用JavaScript构建聊天机器人,现在我想让它在谷歌上搜索东西

我想做的是键入任何内容,然后函数将
窗口打开
到谷歌页面。例如,如果我键入
googlecars
它将打开一个带有cars链接的页面:
https://www.google.com/search?q=cars

这可以用JavaScript实现吗

这就是我目前所做的:

function takeInput(e) {

    // enter === 13

    if(e.which != 13) {
        return false;
    }

    var question = this.value;

    appendOutput("<p><b>HUMAN : </b>" + question + "</p>", output);
    appendOutput("<p><b>CHATBOT : </b>" + processInput(question) + "</p>", output);
    appendOutput('<hr/>', output);

    this.focus();
    this.select();

    output.scrollByLines(100);
}

function processInput(question) {
    var answer = "I cannot answer this question";

    if (question.toUpperCase() == "GOOGLE ") {
        answer = "Here is what I found on Google:";
        window.open('https://www.google.com/search?q=');
    }
}
函数输入(e){
//输入===13
如果(如!=13){
返回false;
}
var问题=此值;
追加输出(“p>人:“+question+”

”,输出); appendOutput(“CHATBOT:”+processInput(问题)+“

”,output); 追加输出(“
”,输出); 这是focus(); 这是select(); 输出。滚动署名(100); } 函数processInput(问题){ var answer=“我不能回答这个问题”; if(question.toUpperCase()=“谷歌”){ 回答=“这是我在谷歌上找到的:”; 打开窗户https://www.google.com/search?q='); } }
好,我们来分析一下:

  • 您想构建一个聊天室,它接受用户的输入
  • 当在问题之前使用谷歌时,聊天盒将进行谷歌搜索,例如谷歌[问题陈述]
  • 然后,在一些事件被触发后,如点击按钮、输入键或任何你想要的东西,它将打开一个新窗口,并根据[question statement]进行谷歌搜索
  • 我考虑了以上几点,并提出了以下实施方案:

    JavaScript HTML
    
    搜寻
    
    我用一个
    textarea
    来表示一个聊天框,基本上是在其中键入内容,然后让用户通过事件将其发送到某个地方。在本例中,我使用的是一个按钮,但您可以执行任何您喜欢的操作,例如组合上述操作,也可以检查键盘按下的
    keydown
    事件的
    enter

    然后,我获取用户输入,使用正则表达式匹配得到第一个单词:
    ^([\w\-]+)

    如果这是真的,如果我正确地解释了您的问题,那么我将使用
    窗口。打开
    google一词后对用户输入的内容进行google搜索,使用正则表达式:
    google(.*)

    您可以在此中随意使用它


    有问题吗?请在下面的评论中询问。

    请输入更多代码,很难说出您尝试了什么和正在做什么after@CharlieWynn正如你所说,我添加了更多的代码。事实上,我正在构建一个“聊天机器人”而不是“聊天盒”。因此,用户在一个对话框中说了些什么,机器人就会回答。在这种情况下,我想知道是否有一个javascript通配符(我不知道你怎么称呼它)能够做到这一点:用户:谷歌*聊天机器人:以下是我在谷歌上发现的:聊天机器人将做的也是创建一个窗口。open(“+”*”);*=用户在谷歌之后放置的任何内容(例如谷歌汽车或谷歌facebook等)我想更好地理解你所说的通配符是什么意思,还有这个聊天机器人到底应该做什么?我想让它做的是如果用户说“谷歌汽车”,聊天机器人将能够打开一个新窗口,并在谷歌上显示汽车搜索结果。聊天机器人应该可以进行谷歌搜索、设置提醒、撰写电子邮件等。我已经用AIML制作了这个聊天机器人,但现在我想让它再次使用JavaScript,因为你可以用JavaScript做更多的事情。很抱歉,如果我把你和“通配符”这个词混淆了。如果你的聊天机器人代码是用JavaScript编写的,你可以将它绑定起来,以与我在答案上所做的完全相同的方式听取用户输入。JavaScript只需要您使用事件处理程序来侦听用户操作,在这种情况下,您可以让聊天机器人使用相同的代码从末端触发此行为。
    (function(){
        var googleBox = document.getElementById("googleBox"),
            searchButton = document.getElementById("searchButton");
    
      searchButton.addEventListener("click", function(){
        var userInput = googleBox.value,
            regex_google = new RegExp('google(.*)');
    
        if(userInput.match(/^([\w\-]+)/)[1].toLowerCase() === "google"){ // matches the first word in the string, which should be 'google'
    
          window.open('https://www.google.com/search?q=' + userInput.match(regex_google)[1].trim());
        }
      });
    })();
    
    <textarea name="googleBox" id="googleBox" cols="30" rows="10"></textarea>
    <button id="searchButton">Search</button>