我正在使用Tampermonkey来节省频繁任务的时间。目标是在www.example1.com上获取元素的内容,导航到另一个页面,并在那里做一些事情。从match
可以看出,起始页是www.example1.com。这是我正在使用的代码:
//@match http://example1.com
var item = document.getElementById("myId").textContent;
window.open("http://example2.com","_self");
setTimeOut(function(
//perform clicks on this page
){},3000);
更改URL后的所有代码都不会被执行。为什么,以及解决方法是什么?
答案 0 :(得分:3)
在两个网址上设置用户说明并使用GM_setValue
/ GM_getValue
来组织通信。
//@match http://example1.com
//@match http://example2.com
//@grant GM_getValue
//@grant GM_setValue
if (location.href.indexOf('http://example1.com') == 0) {
GM_setValue('id', Date.now() + '\n' + document.getElementById("myId").textContent);
window.open("http://example2.com","_self");
} else if (location.href.indexOf('http://example2.com') == 0) {
var ID = GM_getValue('id', '');
if (ID && Date.now() - ID.split('\n')[0] < 10*1000) {
ID = ID.split('\n')[1];
.............. use the ID
}
}
location.host
或location.origin
或将location.href
与regexp匹配,具体取决于真实网址。传递复杂对象序列化它们:
GM_setValue('test', JSON.stringify({a:1, b:2, c:"test"}));
try { var obj = JSON.parse(GM_getValue('test')); }
catch(e) { console.error(e) }