【问题标题】:Capture text from HTML and send it to .js which includes watson API从 HTML 中捕获文本并将其发送到包含 watson API 的 .js
【发布时间】:2023-04-05 04:59:01
【问题描述】:

我正在玩一些 IBM watson。但由于我是 HTML 和 JavaScript 的新手,我面临着几个问题...... 这个想法是将文本交给沃森。沃森的反应很好。但不幸的是,我不知道如何将文本从 HTML 文件发送到 watson 以处理文本。我已经尝试了几件事,但到目前为止没有任何效果。 Firefox 中的开发人员工具告诉我 submitData 未定义。 除其他外,我尝试使用“document.getElementById("myText").value;”捕获数据...我现在很迷茫,找不到答案。

我非常感谢任何形式的帮助!

干杯, 丹尼尔

var submitData = function() {
  var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');
  var toneAnalyzer = new ToneAnalyzerV3({
    username: 'XXXXXXXXX',
    password: 'XXXXXXXXX',
    version: '2016-05-19',
    url: 'https://gateway.watsonplatform.net/tone-analyzer/api/'
  });
  toneAnalyzer.tone({
      tone_input: 'You say hello and I say goodbye', //new
      content_type: 'text/plain'
    },
    function(err, tone) {
      if (err) {
        console.log(err);
      } else {
        console.log(JSON.stringify(tone, null, 2));
      }
    }
  );
}
<div class="container">
  <div class="form-group">
    <label for="myText">Sumbit your examplar response:</label>
    <textarea class="form-control" rows="5" id="myText"></textarea>
    <button type="button" class="btn btn-primary" onclick="submitData()">Submit</button>
  </div>
</div>
<!-- /.container -->

【问题讨论】:

  • 你的意思是tone_input: document.getElementById("myText").value,

标签: javascript html watson


【解决方案1】:

这里有几点需要注意:

您似乎正在尝试在浏览器中使用require,为此您应该使用Browserify 之类的东西。

您还可以考虑将 require 语句移到函数范围之外,这样您就不会在每次函数运行时都重新导入依赖项。

您可以使用document.getElementById('myText').value 捕获您的输入

此外,最好将您的脚本标记放在文档的 head 元素中或 body 元素的末尾。

示例

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <div class="container">

    <div class="form-group">
      <label for="myText">Sumbit your examplar response:</label>
      <textarea class="form-control" rows="5" id="myText"></textarea>
      <button type="button" class="btn btn-primary" onclick="submitData()">Submit</button>

    </div>

  </div>
  <!-- /.container -->
  <script type="text/javascript">
    var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');

    var submitData = function () {

      var toneAnalyzer = new ToneAnalyzerV3({
        username: 'XXXXXXXXX',
        password: 'XXXXXXXXX',
        version: '2016-05-19',
        url: 'https://gateway.watsonplatform.net/tone-analyzer/api/'
      });

      toneAnalyzer.tone({
        tone_input: document.getElementById('myText').value,  //new
        content_type: 'text/plain'
      },
        function (err, tone) {
          if (err) {
            console.log(err);
          } else {
            console.log(JSON.stringify(tone, null, 2));
          }
        }
      );
    };  
  </script>
</body>

</html>

【讨论】:

  • 您好 Joshua,非常感谢您的帮助。我使用了browserify,“require”的问题现在已经解决了。但是我仍然对“submitData”有问题......它只是不起作用,它仍然告诉我 submitData 没有定义。当我使用包含 var submitData = function() { console.log("Test123"); 的简单 test.js 文件进行测试时一切正常......我做错了什么?
猜你喜欢
  • 2011-12-16
  • 2021-08-18
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多