关于这些功能如何工作似乎没有任何信息。我认为这些是Tampermonkey专有功能?
看起来它们旨在允许当前正在运行的Tampermonkey脚本之间进行通信;持续轮询GM_Value存储以进行更改的一种替代方法。这是一个非常有趣的想法。
但是我不知道如何使用它们。他们采用什么价值观,以及您获得什么样的对象?
您如何使用这三个功能,我的目的是否正确?
GM_getTab(cb)
获取一个持久对象,只要此选项卡处于打开状态即可。GM_saveTab(tab)
保存选项卡对象,以在页面卸载后重新打开它。GM_getTabs(cb)
获取数组中的所有选项卡对象,以便与其他Scrip实例进行通信。
我从来没有尝试过使用它们,但是看一下代码,它们似乎可以存储/从每个选项卡中获取所需的内容,并通过所有选项卡以这种方式存储所有内容。
在两个Chrome控制台上,我运行了以下命令:
var this_tab_data, all_tabs, n;
GM_getTab(function (o) {
this_tab_data = o;
n = this_tab_data.rand = Math.random();
GM_saveTab(this_tab_data);
console.info(this_tab_data);
GM_getTabs(function (db) {
all_tabs = db;
console.info(n);
for (var i in all_tabs) {
if (all_tabs[i].rand === n) console.info("I bet I am the tab named: " + i);
else console.info("Other tab: " + i + " has value: " + all_tabs[i].rand);
}
});
});
结果(在选项卡2中):
对象{rand:0.9303610376082361} VM779:11 0.9303610376082361 VM779:14其他标签:366的值:0.417106909211725 VM779:13我敢打赌我是一个名为371的标签页
我使用此用户脚本在chrome控制台中添加了访问权限(基于指示@match
页面上的说明):
// ==UserScript==
// @name My Fancy New Userscript
// @namespace http://use.i.E.your.homepage/
// @version 0.1
// @description enter something useful
// @match http://stackoverflow.com/questions/14059078/use-the-tampermonkey-api-from-the-chrome-console
// @copyright 2012+, You
// ==/UserScript==
unsafeWindow.GM_getTab = GM_getTab;
unsafeWindow.GM_saveTab = GM_saveTab;
unsafeWindow.GM_getTabs = GM_getTabs;
作为附带说明,我看到在关闭设置数据的选项卡后,仍可以使用GM_getTabs()访问此数据。我不确定我是否会指望这一点,但我可能会尽量减少我留下的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句