阅读:1782回复: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(); })(); |
|