在浏览器窗口之间拖动内容

时间:2012-11-16 21:46:18

标签: javascript web-applications

这是一个长镜头,我很确定这是不可能的,但我想我会问,以防万一有人知道我不知情的伏都教。

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

2 个答案:

答案 0 :(得分: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. 对之前播放的数据采取行动。
  8. 不漂亮,容易出错,但取决于你需要多少,可能会有效。

答案 1 :(得分:1)

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

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

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

相关问题