我想创建一个油腻的猴子脚本,它将在一个邮件站点中添加用于注销操作的快捷键。
目前退出链接“?logout& hl = en”,其中 id =“:r5”。我能够获得链接的节点,但无法调用点击它。
我尝试了如下脚本
function key_event(event){
GM_log("Hello");
GM_log(event.keyCode);
//if(event.keyCode != 112) return;
e=document.getElementById(':r5');
if(!e) {return;}
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent(('click'),true,true,window,0,0,0,0,0,false,false,false,false,0,null);
GM_log(e);
e.dispatchEvent(evObj);
}
document.addEventListener("keypress", key_event, true);
但这不起作用。你觉得这里有什么问题?
由于 Ĵ
答案 0 :(得分:2)
我认为您无法单击脚本中的链接。您应该尝试重定向到链接位置:
.....
e=document.getElementById(':r5');
document.location.href = e.href;
.....
答案 1 :(得分:1)
这是Mozilla浏览器的错误或安全“功能”(开发人员尚未决定)。请参阅:"simulating a click on an anchor using dispatchEvent and initMouseEvent does not trigger a real click"。
所以你不能以这种方式触发链接(现在)。
如果是普通链接,请使用:
var sTargetURL = document.getElementById(':r5').href;
window.location.href = sTargetURL;
。
如果是JavaScript调用,则EG <a id=":r5" href="SomeFunc()">foo</a>
使用:
unsafeWindow.SomeFunc();