1

这是一个远射,我很确定这是不可能的,但我想我会问一下,以防有人知道一些我不知道的巫术。

在任何情况下,是否有可能使用任何浏览器,即使需要某种插件,将元素从一个浏览器窗口拖到另一个浏览器窗口?

4

2 回答 2

2

这有点过时了,但这里有一个令人讨厌的设置,通过一些调整可能对你有用。

Flash 有一个类LocalConnection,它使用 IPC 与其他 Flash 实例进行通信。虽然这通常在同一页面上的 Flash 电影之间使用,但它确实可以在其他浏览器窗口中的 Flash 电影之间使用,甚至完全可以在其他浏览器之间使用。例如,您可以将消息从 Chrome 页面上的 Flash 电影发送到 Internet Explorer 页面上的 Flash 电影。

现在,这个沟通渠道应该是您最需要的。流程应该和他的一样:

  1. 检测页面 A 上的开始拖动
  2. 检测鼠标离开页面A
  3. 广播事件 1/2 已经发生的消息,以及描述被拖动对象的任何所需数据。
  4. 在 B 页上检测到该广播,然后稍等片刻。
  5. 检测鼠标进入页面B
  6. 检测页面 B 上的鼠标上移
  7. 对先前广播的数据采取行动。

不漂亮,而且容易出错,但取决于你需要这个有多严重,可能会起作用。

于 2012-11-16T22:00:39.113 回答
1

由于 JavaScript 的工作方式,很难将数据从一个窗口移动到另一个窗口。即使您使用的是框架(在同一个域上)。

如果您DOMElement在一个框架中制作一个,则不允许将其添加到另一个框架的 DOM 中,因为它们不具有相同的祖先。同样instanceof,如果您在帧之间发送对象等等,检查也会失败。

但是,您可以模拟它,但这需要两个窗口彼此非常同步(通过服务器?滞后?)。如果您在到达边缘后结束窗口上的拖动事件,让它向服务器发送一个信号,该信号在另一个窗口上使用适当的数据启动一个拖动开始事件等,您可以使其工作。

于 2012-11-16T21:59:11.537 回答