首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取未定义的属性'G‘在Chrome中的错误

无法读取未定义的属性'G‘在Chrome中的错误
EN

Stack Overflow用户
提问于 2015-08-20 19:32:17
回答 1查看 1.5K关注 0票数 2

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

为此,我编写了一个新的js,并将单击事件附加到gtranslate块项。我使用

代码语言:javascript
复制
window.location.replace(); 

若要重定向页,请执行以下操作。该函数在Firefox中运行良好。然而,在Chrome中,它是随机工作的。(重定向总是有效的,但谷歌翻译框架有时不会显示。)

控制台日志捕获一个错误,该错误为

代码语言:javascript
复制
"Uncaught TypeError: Cannot read property 'G' of undefined". 

google翻译框架也是一个js文件。所述翻译框架由iframe呈现。我已经试过了

代码语言:javascript
复制
$('iframe').load(function(){...});

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

希望有人遇到同样的问题之前,并将提供一个解决方案。

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2017-08-31 14:59:47

如果有人面临同样的问题,我在这里解决这个问题。

这是由异步脚本加载顺序引起的。google翻译脚本从google加载,自定义脚本从Drupal加载。通常情况下,自定义脚本的加载速度要比google翻译脚本快。因此,当您在自定义脚本中触发一个google翻译事件时,它将找不到在google翻译脚本中定义的变量。

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

这不是一个完美的,甚至不是一个好的解决方案,但它做了我想要的。如果我要面对类似的问题,我会在将来发表我更好的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32126818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档