小白鸟
火狐狸
火狐狸
  • UID27353
  • 注册日期2008-12-07
  • 最后登录2022-07-13
  • 发帖数120
  • 经验38枚
  • 威望0点
  • 贡献值24点
  • 好评度2点
阅读:1767回复:6

请帮忙检查一下GM脚本那里出错了

楼主#
更多 发布于:2010-08-26 09:47
自己照着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);
    };
fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2024-04-22
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
1楼#
发布于:2010-08-26 09:47
匹配规则太强大了。执行js会插入嵌套页面吗,如果会,那就会这么递归下去了。
小白鸟
火狐狸
火狐狸
  • UID27353
  • 注册日期2008-12-07
  • 最后登录2022-07-13
  • 发帖数120
  • 经验38枚
  • 威望0点
  • 贡献值24点
  • 好评度2点
2楼#
发布于:2010-08-26 09:47
原来是这样啊,请问该怎么弄匹配规则呢?
fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2024-04-22
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
3楼#
发布于:2010-08-26 09:47
在js上判断下是不是被嵌套的页面吧。避免无穷嵌套。
小白鸟
火狐狸
火狐狸
  • UID27353
  • 注册日期2008-12-07
  • 最后登录2022-07-13
  • 发帖数120
  • 经验38枚
  • 威望0点
  • 贡献值24点
  • 好评度2点
4楼#
发布于:2010-08-26 09:47
js只看过入门教程,请问如何加上判断语句啊
小白鸟
火狐狸
火狐狸
  • UID27353
  • 注册日期2008-12-07
  • 最后登录2022-07-13
  • 发帖数120
  • 经验38枚
  • 威望0点
  • 贡献值24点
  • 好评度2点
5楼#
发布于:2010-08-26 09:47
请教fiag版版,用if (window == window.parent) 好还是if (window == window.top)好
菲洛
小狐狸
小狐狸
  • UID33805
  • 注册日期2010-08-26
  • 最后登录2010-09-10
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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();
})();
游客

返回顶部