如何将DOM数据从一个窗口传输到另一个窗口?

时间:2014-11-04 10:00:24

标签: javascript jquery google-chrome dom google-chrome-extension

我正在尝试创建一个jQuery / Javascript函数,通过该函数,来自网页上多个div的数据用于在Chrome中的相邻窗口或标签上填写表单。

我能够捕获数据,但有没有方法可以访问其他标签,还是我必须创建Chrome扩展程序?

1 个答案:

答案 0 :(得分:0)

取决于您是否可以控制两个页面。

  1. 如果您不控制接收页面,那么访问其DOM的唯一方法是通过Chrome扩展程序注入Content Script。它将能够访问页面的表单以填写它,并与其他标签进行通信,例如通过背景页面。

    如果您希望尝试开发此类扩展程序,我高度建议您仔细阅读Overview页。

  2. 如果您确实控制了相关网页,这有点奇怪,但可以实现。

    • 假设页面位于同一个域中。然后,他们会分享localStorage / sessionStorage,如果您在另一个中修改,change event会触发一个。

    • 如果他们不在同一个域中,但您同时控制它们,则可以考虑使用postMessage来传输数据。

  3. 请注意:您的问题是"转移DOM数据"。上述所有解决方案仅传输JSON-serializable数据(或字符串)。一些与DOM相关的数据,如HTMLElement本身,无法完全序列化。