|
阅读:2228回复:6
请帮忙检查一下GM脚本那里出错了
自己照着GM的教程鼓捣了一个自动翻译的脚本,执行是执行了但经常cpu%100,请帮忙看看那里出错了
// ==UserScript==
// @name Google Translate
// @namespace Google Translate
// @description Google Translate
// @include http://*
// @include https://*
// ==/UserScript==
googletranslate();
function googletranslate(){
var script = document.createElement("script");
script.type = 'text/javascript';
script.src = "http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";
document.body.appendChild(script);
var div=document.createElement("div");
div.id='google_translate_element';
div.style.display="none"
document.body.insertBefore(div,document.body.firstChild);
var script = document.createElement ("script");
script.text="function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: ''},'google_translate_element');}";
script.type = "text/javascript";
document.body.appendChild(script);
}; |
|
|
1楼#
发布于:2010-08-26 09:47
匹配规则太强大了。执行js会插入嵌套页面吗,如果会,那就会这么递归下去了。
|
|
|
2楼#
发布于:2010-08-26 09:47
原来是这样啊,请问该怎么弄匹配规则呢?
|
|
|
3楼#
发布于:2010-08-26 09:47
在js上判断下是不是被嵌套的页面吧。避免无穷嵌套。
|
|
|
4楼#
发布于:2010-08-26 09:47
js只看过入门教程,请问如何加上判断语句啊
|
|
|
5楼#
发布于:2010-08-26 09:47
请教fiag版版,用if (window == window.parent) 好还是if (window == window.top)好
|
|
|
6楼#
发布于:2010-08-26 09:47
// ==UserScript==
// @name Google Translate
// @namespace Google Translate
// @description Google Translate
// @include http://*
// @include https://*
// ==/UserScript==
(function(){
function getCookie(name){
if(document.cookie.length>0){
start=document.cookie.indexOf(name + "=");
if(start!=-1){
start=start + name.length+1;
end=document.cookie.indexOf(";",start);
if(end==-1)
end=document.cookie.length;
return unescape(document.cookie.substring(start,end));
}
}
return "";
}
function setCookie(name,value,expire){
var exdate=new Date();
exdate.setDate(exdate.getDate()+expire);
document.cookie=name+"="+escape(value)+
((expire==null)?"":";expires="+exdate.toGMTString());
}
function delCookie(name){
var expdate=new Date();
expdate.setTime(expdate.getTime()-1);
var cval=getCookie(name);
if(cval!=null)
document.cookie=name+"="+cval+";expires="+expdate.toGMTString();
}
function trans(){
var script1 = document.createElement("script");
script1.type = 'text/javascript';
script1.src = "http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";
document.body.appendChild(script1);
var div=document.createElement("div");
div.id='google_translate_element';
div.style.display="none"
document.body.insertBefore(div,document.body.firstChild);
var script2 = document.createElement("script");
script2.text="function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: ''},'google_translate_element');}";
script2.type = "text/javascript";
document.body.appendChild(script2);
}
function init(){
var gTrans=getCookie('gTrans');
if (gTrans!=null && gTrans!=""){
setTimeout(function(){delCookie('gTrans');},2000);
}else{
trans();
setCookie('gTrans',0,1);
}
}
init();
})(); |
|