特定のテキストのリンクを開くブックマークレットを作成しようとしていますが、そのsetTimeout
部分で問題が発生しています...
javascript:(function(){
function clickLink(link) {
if (document.createEvent) {
var event=document.createEvent("MouseEvents");
event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
link.dispatchEvent(event);
} else if (link.fireEvent) {
link.fireEvent("onclick");
}
}
l=document.links;
for(var i=0;i<l.length;++i) {
var lL=l[i].innerHTML.toLowerCase();
if(lL.indexOf("click here")!=-1 || lL.indexOf("how")!=-1)
setTimeout(function() {clickLink(l[i]) }, 1000);
}
};
})();
試してみるとsetTimeout(clickLink(l[i]), 1000);
、動作しますが、タイムアウトを待つのではなく、すぐに実行されます!
また、この方法でリンクをクリックすると mousedown/mouseup イベントが発生することをもう 1 つ知りたいですか? そうでない場合、マウスダウン/マウスアップイベントも発生させるリンクをプログラムでクリックするにはどうすればよいですか?