我想对Flash内容进行鼠标点击模拟。我从firefox开发者网站Simulating mouse and key events找到了这个文档。我使用this html drawing page来测试它并且它有效(见下图)。但是当我在基于闪存的this drawing page上做同样的事情时,似乎firefox实际上没有点击flash内容。但无论如何它专注于页面,但我看不到内容已被点击。
这是我用于点击的代码。 (我在scratchpad
)
var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindowUtils);
utils.sendMouseEvent("mousedown", x, y, 0, 1, 0);
utils.sendMouseEvent("mouseup", x, y, 0, 1, 0);
这是我用来在scatchpad上测试它的实际代码
var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindowUtils);
var x=580;
var y=400;
var counter=0;
var timer;
function simulate(){
utils.sendMouseEvent("mousedown", x, y, 0, 1, 0);
utils.sendMouseEvent("mouseup", x, y, 0, 1, 0);
x++;
y++;
if(counter>200){
clearTimeout(timer);
}
counter++;
}
timer=setInterval(function(){simulate();},10);
这是我在html绘图页面中运行时获得的。但是在基于flash的页面中运行此脚本时我什么也没得到。
我问的是如何从firefox插件进行鼠标点击模拟。但我不喜欢使用js-ctypes
。如果不使用本机ctypes代码,是否无法对Flash内容进行鼠标模拟?
有一些原因我不喜欢ctypes
。例如,它可以点击任何窗口,不仅浏览器也需要最大化浏览器,但上面的方法只需浏览器即可,即使浏览器最小化也可以工作