跨选项卡复制数据

时间:2010-03-13 19:17:09

标签: javascript firefox greasemonkey firefox-addon screen-scraping

我在两个不同的标签中有两种不同的形式。一个是来自我们系统的数据,另一个是另一个外部系统的接口,我们需要将数据复制到(XML或API集成不是这里的选项)

这就是说,打开两个表单 - 在两个不同的选项卡中 - 我需要一个greasemonkey脚本或类似的东西,允许我将数据从一个表单复制到另一个表单(使用Javascript中的getValue方法)。

现在的问题是我无法弄清楚如何使用一个特定的选项卡或窗口使用greasemonkey脚本来引用(从中传出数据或将数据写入)。你认为我可以做我想做的事吗?

感谢

1 个答案:

答案 0 :(得分:2)

是的,我相信这是可能的。 Greasemonkey存储的配置值存储在每个脚本中,因此您需要确保单个 Greasemonkey脚本针对这两个页面运行,即使它们位于不同的URL。 (More info here。)

你可能想要一个大的if / else块来划分你想要在源页面和目标页面上运行的代码,如下所示:

if (window.location.hostname.match(/source-site\.com/) {
    //attach to the form fields and make them call GM_setValue() on every change
} else if (window.location.hostname.match(/target-site\.com/) {
    //use GM_getValue() to pull in the data you stored from the source site
}

这似乎比让脚本在一个页面上执行并尝试访问其他打开窗口的DOM(我不确定是否可能)更容易。