谷歌翻译不适用于任何 IE,但适用于 Firefox 和 Google Chrome

Posted

技术标签:

【中文标题】谷歌翻译不适用于任何 IE,但适用于 Firefox 和 Google Chrome【英文标题】:Google Translate Not working in Any IE but works in Firefox and GoogleChrome 【发布时间】:2015-09-02 19:34:01 【问题描述】:

我已经在 IE、Firefox 和 Google Chrome 中测试过这个页面。它适用于除 IE 之外的所有应用程序。谁能告诉我如何解决这个问题,过去两天我几乎尝试了所有可能的方法。

试试这个测试页

<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
Hello
<div id="google_translate_element"></div>
        <script type="text/javascript">
        function googleTranslateElementInit() 
                new google.translate.TranslateElement(pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 'google_translate_element');
            
        </script>
        <script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
</body>
</html>

在选择一种语言时,它显示选择的选择,但从未完成翻译。但在Firefox和Google Chrome中工作。 IE 只是处于 0% 并且一直在旋转。有没有其他人遇到同样的问题?

切换语言时它在控制台中抛出的错误是这样的:

XMLHttpRequest: Network Error 0x2f1c, Could not complete the operation due to error 00002f1c.

我已经尝试了很多事情,甚至到了这样的程度:

<div id="google_translate_element"></div>
        <script type="text/javascript">
        $.ajax(
  url:"http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit",
  type:"POST",
  data:"google_translate_element",
  contentType:"application/json; charset=utf-8",
  dataType:"json",
  success: function googleTranslateElementInit() 
                new google.translate.TranslateElement(pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 'google_translate_element');
            

  )
        </script>

任何帮助将不胜感激!

【问题讨论】:

我们的论坛也提出了这个问题,它似乎可以在 IE11 隐私模式下工作。所以,是的,要求您的用户按 Ctrl+Shift+P 来访问该网站并不是一个好的解决方案,但同时也是一种解决方法。见colnect.com/en/forum/viewtopic!f=46&t=56363&p=152435 对于这个IE问题我们有什么解决办法吗? 【参考方案1】:

在代码中有指向谷歌翻译文件的链接

//translate.google.com...

当我将完整地址输入浏览器时,它会自动下载一个文本文件。我将 .txt 文件转换为 .js 文件,然后将 Web 链接替换为 js 文件的链接,效果很好。我希望这会有所帮助。

【讨论】:

@Bob:我能够下载该文件。但是,它没有用。你能显示正在调用文件吗?我做了以下&lt;script src="#$.siteConfig('themeAssetPath')#/js/scripts/googleTranslate.js"&gt;&lt;/script&gt;【参考方案2】:

终于找到问题了!!新的安全更新破坏了翻译器。如果您删除 KB3058515,这将解决问题。但现在我们必须弄清楚如何让它与更新一起使用,因为用户不会删除那里的安全更新。

【讨论】:

删除 Microsoft 安全更新以使您的翻译器小部件工作是不是修复。唯一告诉你的是问题的可能根源,所以现在你的工作就是找出安全补丁破坏的原因,并在你的 webapp 中编写补丁或解决方法。但是要求(或期望)您的用户删除安全更新以使某项功能在您的网站上运行是一个可怕的想法。 这就是我的意思发现问题 如果你 take a look at the updates that were contained in that update to internet explorer 你会看到它“增加了对 HTTP 严格传输安全标准的支持”,所以也许这与它有关。从那里开始作为您的第一条线索,看看您是否可以在 IE 11+ 中找到解决方法。【参考方案3】:

如果我有足够的代表,我会发表评论。

我有同样的问题,在 Chrome 和 Firefox 上运行良好,但在 IE 上却失败了。

另一种选择是 Microsoft Bing 翻译器http://www.microsoft.com/translator/getstarted.aspx。

如果有人可以帮助我们,将不胜感激

【讨论】:

【参考方案4】:

我也有同样的问题,我认为这更多是因为 MS 没有遵循 Mozilla 和 Google 为达到相同结果而采取的相同规则。这确实是他们应该解决的 IE 问题,他们是试图保护用户免受 http 可以剥夺 https 安全性的方法的三个之一。举了一个例子,用户使用 http 登录到他的银行,然后重定向到 https,允许某人访问以将用户重定向到虚假银行帐户以收集他的详细信息。我仍然在嘲笑银行无论如何都会使用http传输的想法。银行应该为所有事情使用安全连接。但这并不能解决我们的问题。我已建议我的客户使用 Firefox 或 Chrome,直到问题得到解决,这超出了我的能力范围。

【讨论】:

【参考方案5】:

我遇到了同样的问题,并找到了一些其他的讨论。它与在 IE11 中引入对 HTTP 严格传输安全标准 (HSTS) 的支持有关,包含在安全更新 KB 3058515 中。

看起来你的选择是:

让用户删除或禁用 KB 3058515 让 Google 将他们的网站添加到 Microsoft 的 HSTS 预加载列表中 让 Google 通过使用 Strict-Transport-Security HTTP 标头启用 HSTS (可能)将您的网站添加到 Microsoft 的 HSTS 预加载列表中

更多讨论在这里: http://answers.microsoft.com/en-us/ie/forum/ie11-windows_7/google-translate-widget-not-working-in-internet/55f835e2-6460-46f3-8e71-9dbf3c3f5e49

微软知识库文章: https://support.microsoft.com/en-us/kb/3071338

【讨论】:

【参考方案6】:

此问题与 2015 年 6 月的 Internet Explorer 更新有关。通过下载 2015 年 7 月版本:版本 11.0.9600.17914,更新版本 11.0.21 (KB3065822) - 问题似乎已得到解决。如其论坛中所述,Microsoft 已意识到该问题。我相信他们在 7 月版本中通过修复解决了这个问题。

如果未打开自动更新,建议用户更新浏览器。

【讨论】:

【参考方案7】:

我最近在一个网站上遇到了这个问题。翻译器在 Firefox、Chrome 和移动浏览器中正常显示,但在 IE 8-11 中没有。我们的解决方案是一个非常简单的解决方案(我想大多数人都不会关心)。我们实际上只需要翻转脚本链接和脚本函数。

<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<script>
  function googleTranslateElementInit() 
    new google.translate.TranslateElement(
        pageLanguage: 'en',
        'google_translate'
    );

    jQuery('.goog-logo-link').css('display', 'none');
    jQuery('.goog-te-gadget').css('font-size', '0');
  
</script>

成为:

<script>
  function googleTranslateElementInit() 
    new google.translate.TranslateElement(
        pageLanguage: 'en',
        'google_translate'
    );

    jQuery('.goog-logo-link').css('display', 'none');
    jQuery('.goog-te-gadget').css('font-size', '0');
  
</script>
<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

这解决了在 IE 中不显示的问题,但也没有伤害 Chrome 或 Firefox。

【讨论】:

【参考方案8】:

如果我有足够的代表,我也会发表评论。

我也有同样的问题。对我来说,它是在 IE 更新到 v.11.0.9600.17843(更新版本 11.0.20)之后开始的。在此之前,谷歌翻译小部件在 IE 中运行良好。

【讨论】:

以上是关于谷歌翻译不适用于任何 IE,但适用于 Firefox 和 Google Chrome的主要内容,如果未能解决你的问题,请参考以下文章

IE8 中的不透明度适用于 <p> 但不适用于 <a>

CSS 不适用于 IE 和 Firefox,但适用于 Chrome

Angular JS 适用于 Chrome,但不适用于 IE 11

使用 JavaScript 裁剪图像适用于 IE,但不适用于 Firefox [重复]

innerHTML 适用于 IE 和 Firefox,但不适用于 Chrome

JavaScript 时钟适用于 Chrome,但不适用于 Firefox 或 IE