【问题标题】:Gtranslate module "Cannot read property 'G' of undefined" error in ChromeChrome中的Gtranslate模块“无法读取未定义的属性'G'”错误
【发布时间】:2015-08-20 19:32:17
【问题描述】:

我正在尝试向 Drupal 中的 Gtranslate 模块添加附加功能,以使其成为语言切换块。当点击 gtranslate 块时,url 也会重定向到所需的语言版本,如 ****/es/****。这样,我可以将 gtranslate 模块用于不重要的文本,但使用实体翻译来为重要内容提供精确的人工翻译。

我通过编写一个新的 js 来做到这一点,并将点击事件附加到 gtranslate 块项目。我用

window.location.replace(); 

重定向页面。该功能在 Firefox 中运行良好。但是,在 Chrome 中,它是随机运行的。 (重定向总是有效,但谷歌翻译框架有时不会显示。)

控制台日志捕捉到一个错误,即

"Uncaught TypeError: Cannot read property 'G' of undefined". 

google翻译框架也是一个js文件。并且翻译框架由 iframe 渲染。我已经试过了

$('iframe').load(function(){...});

但这会禁用重定向代码。不知道我现在应该去哪里。

希望有人遇到过同样的问题并提供解决方案。

非常感谢。

【问题讨论】:

    标签: javascript jquery google-chrome drupal-modules


    【解决方案1】:

    如果有人遇到同样的问题,这里是我对这个问题的解决方案。

    这是由异步脚本加载顺序引起的。谷歌翻译脚本是从谷歌 CDN 加载的,自定义脚本是从 Drupal 加载的。通常,自定义脚本的加载速度比谷歌翻译脚本快。因此,当您在自定义脚本中触发谷歌翻译事件时,它无法找到谷歌翻译脚本中定义的变量。

    理想的解决方案是使用promisecallback 函数以正确顺序进行异步加载。当我修复它时,我没有那么多知识。所以我只是使用setTimeOut(function () {}, 500) 在加载谷歌翻译脚本后异步运行我的自定义脚本。

    这不是一个完美甚至是好的解决方案,但它做了我想要的。如果我遇到类似的问题,我会在以后发布我更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2022-11-15
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多