HeaderEditor icon indicating copy to clipboard operation
HeaderEditor copied to clipboard

[Question]如何加载JS小书签?

Open chaoxi23 opened this issue 5 years ago • 2 comments

不好意思,可能这个问题比较偏。这个GOOGLE的翻译小书签是我最常用的,老实说每次手动点击有点麻烦,所以我想把它用在网页主 URL的规则上,每次触发都自动调用它。但我尝试了两种方法,追加在响应数据和自定义函数内部,都没有成功。 请问可以增加一个调用它的示例吗?谢谢。

javascript:{d=document;b=d.body;o=d.createElement('scri'+'pt');o.setAttribute('src','https://translate.google.cn/translate_a/element.js?cb=googleTranslateElementInit');o.setAttribute('type','text/javascript');b.appendChild(o);v=b.insertBefore(d.createElement('div'),b.firstChild);v.id='google_translate_element';v.style.display='none';p=d.createElement('scri'+'pt');p.text='function%20googleTranslateElementInit(){new%20google.translate.TranslateElement({pageLanguage:%22%22},%22google_translate_element%22);}';p.setAttribute('type','text/javascript');b.appendChild(p);}void%200

chaoxi23 avatar Jan 01 '20 14:01 chaoxi23

image 首先要 decodeURI 小书签,然后用script标签包裹脚本,放在body结束标签之前。

if(detail.type === 'main_frame'){
  return val.replace(/(?=<\/body>)/, `<script>(()=>{
d=document;b=d.body;o=d.createElement('scri'+'pt');o.setAttribute('src','https://translate.google.cn/translate_a/element.js?cb=googleTranslateElementInit');o.setAttribute('type','text/javascript');b.appendChild(o);v=b.insertBefore(d.createElement('div'),b.firstChild);v.id='google_translate_element';v.style.display='none';p=d.createElement('scri'+'pt');p.text='function googleTranslateElementInit(){new google.translate.TranslateElement({pageLanguage:""},"google_translate_element");}';p.setAttribute('type','text/javascript');b.appendChild(p);
})()</script>`);
}

ghcsd avatar Jan 01 '20 14:01 ghcsd

多谢,这真的帮了我大忙!

chaoxi23 avatar Jan 01 '20 16:01 chaoxi23