Javascript 跨越受保护greasemonkey执行空间和不安全窗口区域边界的问题

Javascript 跨越受保护greasemonkey执行空间和不安全窗口区域边界的问题,javascript,greasemonkey,Javascript,Greasemonkey,我的问题是: 我已经在一个Yahoo事件驱动的网页(betfair.com market views)中注册了一些回调,并且正在使用处理程序捕获下注事件 到目前为止,一切都很简单 下一步是将活动带回greasemonkey领域,虽然我知道从greasemoney空间可以调用unsafeWindow.stuff,但没有反向操作(按设计) 因此,如果我想通过Comed队列发送事件的内容,那么我精心设置的jquery、greasemonkey、YUI2、betfair环境告诉我,不安全的窗口进程不能调

我的问题是: 我已经在一个Yahoo事件驱动的网页(betfair.com market views)中注册了一些回调,并且正在使用处理程序捕获下注事件

到目前为止,一切都很简单

下一步是将活动带回greasemonkey领域,虽然我知道从greasemoney空间可以调用unsafeWindow.stuff,但没有反向操作(按设计)

因此,如果我想通过Comed队列发送事件的内容,那么我精心设置的jquery、greasemonkey、YUI2、betfair环境告诉我,不安全的窗口进程不能调用GM_ajax。这显然是安全和理智的,但它基本上阻止了我做我想做的事情

有没有人尝试过这样做(忽略Comed的东西,只是一般的ajax调用)并成功了

我看过这样的页面:
但它似乎并不适用于所有呼叫。

使用设置超时,正如您在Greasespot wiki中链接到的页面所解释的那样,应该可以工作,我猜您没有正确地执行该工作。

我似乎不清楚这一点。为什么不能使用
addEventListener()
preventDefault()
stopPropagation()等从GM端捕获事件

不管怎样,最坏的情况是,你不能这样做吗

  • 创建一个隐藏的iframe、div或任何东西,并让GM监视DOM更改事件
  • 将捕获的事件信息写入该节点
  • Greasemonkey然后解析数据,并根据需要使用GM_ajax

  • 存在范围问题。当计时器线程被触发执行时,它没有我在setTimeout中定义的函数的可见性,因此失败。我试图从setTimeout调用greasemonkey脚本的全局命名空间中的函数。