使用谷歌输入工具转换本地语言不显示

时间:2017-02-28 06:30:28

标签: javascript django

我使用以下js代码在django应用程序中转换英语的本地语言。它在本地工作,但在aws上,显示器不起作用,我能看到的只是问号的符号。                              

    // Load the Google Transliteration API

  google.load("elements", "1", {
        packages: "transliteration"
      });

  function onLoad() {
    var options = {
      sourceLanguage: 'en',
      destinationLanguage: ['ml'],
      shortcutKey: 'ctrl+m',
      transliterationEnabled: true
    };
    // Create an instance on TransliterationControl with the required
    // options.

    var control =  new google.elements.transliteration.TransliterationControl(options);
    // Enable transliteration in the textfields with the given ids.    
   var ids = [ "lang", "langu", "language" ];
    control.makeTransliteratable(ids);

    // Show the transliteration control which can be used to toggle between
    // English and Hindi and also choose other destination language.
    // control.showControl('translControl');

  }

  google.setOnLoadCallback(onLoad);

控制台上的错误是

A Parser-blocking, cross-origin script, https://www.google.com/uds/?file=elements&v=1&packages=transliteration, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity. See https://www.chromestatus.com/feature/5718547946799104 for more details.

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您是否在错误消息中阅读了该链接? https://www.chromestatus.com/feature/5718547946799104

似乎很清楚错误是什么:你试图包含来自另一个域的脚本,这可能会影响你的性能并被一些缓慢的浏览器/连接阻止。

您要包含的代码如下:

https://www.google.com/uds/?file=elements&v=1&packages=transliteration

if (window['google'] != undefined && window['google']['loader'] != undefined) {
if (!window['google']['elements']) {
window['google']['elements'] = {};
google.elements.Version = '1.0';
google.elements.JSHash = '7ded0ef8ee68924d96a6f6b19df266a8';
google.elements.LoadArgs = 'file\x3delements\x26v\x3d1\x26packages\x3dtransliteration';
}
google.loader.writeLoadTag("css", google.loader.ServiceBase + "/api/elements/1.0/7ded0ef8ee68924d96a6f6b19df266a8/transliteration.css", false);
google.loader.writeLoadTag("script", google.loader.ServiceBase + "/api/elements/1.0/7ded0ef8ee68924d96a6f6b19df266a8/transliteration.I.js", false);
}

我建议您下载cssscript  并将其放入您的资产管道中。 我不会委托google.loader.writeLoadTag加载它。

<强>更新

恐怕你误解了我的答案。我上面提到的代码是导致错误的脚本的内容。我建议检索css和javascript的完整网址:

现在,您可以选择是否要使用外部链接引用这些资源,或者是否要同时下载cssjs并将其添加到资产管道