javascript - 如何通过 JavaScript 自动 Google 音译文本区域中的单词(无需手动按空格键或 Enter 键)

标签 javascript jquery html transliteration

我使用以下 HTML 代码作为示例发布于 https://developers.google.com/transliterate/v1/getting_started .

<!DOCTYPE html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script type="text/javascript" src="https://www.google.com/jsapi">
    </script>
    <script type="text/javascript">

      // Load the Google Transliterate API
      google.load("elements", "1", {
            packages: "transliteration"
          });

      function onLoad() {
        var options = {
            sourceLanguage:
                google.elements.transliteration.LanguageCode.ENGLISH,
            destinationLanguage:
                [google.elements.transliteration.LanguageCode.HINDI],
            shortcutKey: 'ctrl+g',
            transliterationEnabled: true
        };

        // Create an instance on TransliterationControl with the required
        // options.
        var control =
            new google.elements.transliteration.TransliterationControl(options);

        // Enable transliteration in the textbox with id
        // 'transliterateTextarea'.
        control.makeTransliteratable(['transliterateTextarea']);
      }
      google.setOnLoadCallback(onLoad);
    </script>
  </head>
  <body>
    Type in Hindi (Press Ctrl+g to toggle between English and Hindi)<br>
    <textarea id="transliterateTextarea" style="width:600px;height:200px"></textarea>
    <script src="jquery-2.1.4.min.js"></script>
  </body>
</html> 

我想填充textarea的内容并通过JavaScript输出音译。 我尝试专注于文本区域并触发“Enter”按键/keydown/keyup。但它们都不起作用。我必须手动按 Enter 键或空格键才能进行音译。

请在下面找到我在控制台中尝试过的代码。

$("#transliterateTextarea").val("hello"); # This sets the textarea content as "hello"
$(document).on("mouseup", "body", function(e) {
    $("#transliterateTextarea").show().focus();
    var oldval=$("#transliterateTextarea").val();
    $("#transliterateTextarea").focus().val(oldval);
    var e1 = $.Event( "keypress", { which: 13 } );
    $('#transliterateTextarea').trigger(e1);
}); 

现在,当我单击 HTML 正文上的任意位置时,文本区域将获得焦点,并且光标将显示在单词“hello”的末尾。但不模拟 Enter 键按下,也不执行音译。

请提出解决方案。

提前致谢。

最佳答案

您可以使用 jQuery 监听文本区域的 onChange 事件 https://api.jquery.com/change/

$("#transliterateTextarea").change(function() {

  // call your translit function

});

关于javascript - 如何通过 JavaScript 自动 Google 音译文本区域中的单词(无需手动按空格键或 Enter 键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839665/

相关文章:

jquery - struts2不发布主题

javascript - 在没有用户事件的情况下对多个 div 执行 Jquery 函数

javascript - 模态框内有 iframe

html - 在不更改 CSS 的情况下在提交按钮上应用 input.button CSS?

html - 2018年如何在固定布局表格中使列自动宽度

javascript - 如何将 AIML 与 Node.js 结合使用?

javascript - jquery 数据表 - $.fn.dataTable.ext.errMode 不是函数

javascript - Highcharts 不会导出创建后添加的自定义 SVG 元素

javascript - 如何以编程方式更新全日历中事件的呈现

html - 边框半径html表