Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 让谷歌翻译插件不跟踪访客,除非他们要求_Javascript_Google Translate - Fatal编程技术网

Javascript 让谷歌翻译插件不跟踪访客,除非他们要求

Javascript 让谷歌翻译插件不跟踪访客,除非他们要求,javascript,google-translate,Javascript,Google Translate,我想在我的个人网站上实现谷歌翻译插件。然而,我不希望谷歌能够通过他们的脚本跟踪我网站的所有访问者;除非我的访问者决定使用该功能 我将谷歌的代码包括在下面,因为我应该将其粘贴到我的页面主体中: <div id="google_translate_element"></div> <script type="text/javascript"> function googleTranslateElementInit() { new google.translat

我想在我的个人网站上实现谷歌翻译插件。然而,我不希望谷歌能够通过他们的脚本跟踪我网站的所有访问者;除非我的访问者决定使用该功能

我将谷歌的代码包括在下面,因为我应该将其粘贴到我的页面主体中:

<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="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>




I would appreciate to have specific code to use, not just an explanation. Basically, I want Google's script to load only when a visitor decides s/he wants to use it and actually clicks on it.

函数googleTranslateElementInit(){
新的google.translate.TranslateElement({pageLanguage:'en',布局:google.translate.TranslateElement.InlineLayout.SIMPLE},'google_translate_element');
}
我希望有具体的代码使用,而不仅仅是一个解释。基本上,我希望谷歌的脚本只有在访问者决定使用它并实际点击它时才能加载。

在按下“加载谷歌翻译”按钮之前,下面的代码不会从谷歌服务器加载脚本


函数loadGoogleTranslate(){
var scriptTag=document.createElement('script');
scriptTag.type=“text/javascript”;
scriptTag.src=“//translate.google.com/translate\u a/element.js?cb=googleTranslateElementInit”;
var head=document.getElementsByTagName('head')[0];
head.appendChild(scriptTag);
}
函数googleTranslateElementInit(){
//隐藏包含“加载谷歌翻译”按钮的部分
var beforeLoadSection=document.getElementById('before-load');
beforeLoadSection.style.display='none';
//现在他们的脚本已加载,请设置Google Translate
新的google.translate.TranslateElement({pageLanguage'en'},'google_translate_element');
//显示包含Google Translate元素的部分
var afterLoadSection=document.getElementById('after-load');
afterLoadSection.style.display='';
}
加载谷歌翻译
您可以通过观察网络流量(例如,在的“网络”选项卡中)来验证是否在单击按钮之前未加载Google脚本

注意:您也可以创建一个类似这样的链接,用户可以单击该链接访问页面的翻译版本,无需使用花哨的Javascript:

我用粗体标出了您需要担心的部分:

  • en是“from”语言(本例中为英语)
  • ar是“to”语言(本例中为阿拉伯语)
  • 文本的长字符串是要翻译的页面的形式。谷歌“URL编码”如果你想学习如何做到这一点。Javascript有一个内置函数,可能会有所帮助
另外,你可能会因为某人不喜欢“写我的代码”之类的问题而被否决。如果你加入了,那么你可能不会被否决,但是如果你不知道从哪里开始,创建一个MCVE可能会非常困难。如果你想更多地了解这里的文化,这里有一些关于这个主题的附加阅读:


p.p.S.如果您想使用上面的Javascript代码,请记住这一点。如果你不知道什么是
iframe
,那就不用担心了。

嗨,伙计,非常感谢。另一个问题:为了保持网站的可翻译性,我应该在每个页面上复制这些内容中的哪一个?(前提是我仍然尊重访客的隐私)@AndreasA。啊!您应该能够将
部分的内容(即
元素及其内容)复制到每页的
部分,并将
部分的内容(即两个
元素及其内容)复制到每页的
部分。如果您使用的是PHP(或类似的),最好将这两个HTML片段放入PHP函数中,然后在页面中重用,而不是将HTML复制和粘贴到每个页面中。这样,您就可以减少编写,减少创建错误的机会,减少修复错误或更改内容的位置:)