gpt4 book ai didi

javascript - 在用户脚本中使用谷歌翻译 API

转载 作者:行者123 更新时间:2023-11-28 10:19:57 31 4
gpt4 key购买 nike

我正在为 facebook 制作一个用户脚本,它将帮助使用 Google Translate Api 翻译文本。脚本正在将 html 和 css 内容成功注入(inject) facebook。

问题出在 Google Translate Api 上。我正在注入(inject)一个脚本标签

var s = document.createElement('script');
s.type="text/javascript";
s.src='https://www.google.com/jsapi?key=AIzaSyD24A-czAdTj8pPc5ugo0bYiPRx8Rc2pXo';
document.body.appendChild(s);

首先,此脚本加载 url 2 或 3 次。

为了实际使用 Language Api,我注入(inject)了另一个脚本标签

var ldfun = document.createElement('script');
ldfun.setAttribute('type', 'application/javascript');
ldfun.textContent= "google.load('language','1');";
document.body.appendChild(ldfun);

此脚本未运行,有时它运行后页面会导航离开。

请帮忙

最佳答案

确保脚本没有在 iFrame 中运行,然后使用延迟来确保加载库 JS(否则,浏览器将异步运行这 2 个脚本。)

类似这样的事情:

if (window.top != window.self)  //-- Don't run on frames or iframes
return;

function addJS_Node (text, s_URL)
{
var scriptNode = document.createElement ('script');
scriptNode.type = "text/javascript";

if (text) scriptNode.textContent = text;
if (s_URL) scriptNode.src = s_URL;

//--- document.head is best. Use document.body only on poor target pages.
document.head.appendChild (scriptNode);
}

//--- Load Google-Translate, JS API.
addJS_Node (null, 'https://www.google.com/jsapi?key=AIzaSyD24A-czAdTj8pPc5ugo0bYiPRx8Rc2pXo');

//--- Initialize Google-Translate after a delay to make sure it has loaded.
setTimeout (function() {
addJS_Node ("google.load('language','1');", null);
},
1500
);

关于javascript - 在用户脚本中使用谷歌翻译 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853888/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com