GM_getTab(cb)如何工作?

乔纳森

关于这些功能如何工作似乎没有任何信息。我认为这些是Tampermonkey专有功能?
看起来它们旨在允许当前正在运行的Tampermonkey脚本之间进行通信;持续轮询GM_Value存储以进行更改的一种替代方法。这是一个非常有趣的想法。

但是我不知道如何使用它们。他们采用什么价值观,以及您获得什么样的对象?
您如何使用这三个功能,我的目的是否正确?

GM_getTab(cb)
获取一个持久对象,只要此选项卡处于打开状态即可。

GM_saveTab(tab)
保存选项卡对象,以在页面卸载后重新打开它。

GM_getTabs(cb)
获取数组中的所有选项卡对象,以便与其他Scrip实例进行通信。

http://forum.tampermonkey.net/viewtopic.php?f=16&t=74

损失负责人

我从来没有尝试过使用它们,但是看一下代码,它们似乎可以存储/从每个选项卡中获取所需的内容,并通过所有选项卡以这种方式存储所有内容。

在两个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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

cb &&'function'=== typeof cb && cb(data)在带有redux-thunk的Action(React-redux)中如何工作?

来自分类Dev

GM_setValue工作替代

来自分类Dev

Bukkit equalsIgnoreCase(“ gm 1”)无法正常工作

来自分类Dev

GM跨域Ajax无法正常工作

来自分类Dev

如何让 tmux 使用“Cb Cb Cb”进入第三个嵌套的 tmux 会话?

来自分类Dev

工作目录如何工作?

来自分类Dev

如何通过GM用户脚本登录neopets.com

来自分类Dev

如何安装Intel 82852 / 855GM驱动程序?

来自分类Dev

如何通过GM_xmlhttpRequest发送布尔值?

来自分类Dev

Xcode 11 GM Seed 2 在构建工作区/项目时冻结

来自分类Dev

〜/如何工作?

来自分类Dev

取消绑定Cb,以及如何在大写锁定+ a处设置前缀键?

来自分类Dev

如何在Cypress中合并Junit XML报表以与AWS CB集成

来自分类Dev

如何在tmux中将快捷方式绑定到“ cb(保持按下的键)+ j”?

来自分类Dev

我的附加程序是从使用GM_函数的Greasemonkey脚本编译而成的,在Firefox 31+版本中无法正常工作

来自分类Dev

cb_kwargs中的“ cb”代表什么?

来自分类Dev

如何在我的油脂猴子脚本中提供链接来备份GM _--- value数据库?

来自分类Dev

如何使用GM_xmlhttpRequest提交到基本的外部表单页面?

来自分类Dev

如何使用node.js和gm创建PDF缩略图

来自分类Dev

如何使用异步GM_xmlhttpRequest以原始顺序返回值?

来自分类Dev

OCMock如何工作?

来自分类Dev

这个fork()如何工作

来自分类Dev

如何使kGADAdSizeSmartBannerPortrait工作

来自分类Dev

'cmp'命令如何工作?

来自分类Dev

haskell代码如何工作?

来自分类Dev

“ extern C ++”如何工作?

来自分类Dev

TryParse方法如何工作?

来自分类Dev

Rails路由如何工作?

来自分类Dev

WebHook如何工作?

Related 相关文章

  1. 1

    cb &&'function'=== typeof cb && cb(data)在带有redux-thunk的Action(React-redux)中如何工作?

  2. 2

    GM_setValue工作替代

  3. 3

    Bukkit equalsIgnoreCase(“ gm 1”)无法正常工作

  4. 4

    GM跨域Ajax无法正常工作

  5. 5

    如何让 tmux 使用“Cb Cb Cb”进入第三个嵌套的 tmux 会话?

  6. 6

    工作目录如何工作?

  7. 7

    如何通过GM用户脚本登录neopets.com

  8. 8

    如何安装Intel 82852 / 855GM驱动程序?

  9. 9

    如何通过GM_xmlhttpRequest发送布尔值?

  10. 10

    Xcode 11 GM Seed 2 在构建工作区/项目时冻结

  11. 11

    〜/如何工作?

  12. 12

    取消绑定Cb,以及如何在大写锁定+ a处设置前缀键?

  13. 13

    如何在Cypress中合并Junit XML报表以与AWS CB集成

  14. 14

    如何在tmux中将快捷方式绑定到“ cb(保持按下的键)+ j”?

  15. 15

    我的附加程序是从使用GM_函数的Greasemonkey脚本编译而成的,在Firefox 31+版本中无法正常工作

  16. 16

    cb_kwargs中的“ cb”代表什么?

  17. 17

    如何在我的油脂猴子脚本中提供链接来备份GM _--- value数据库?

  18. 18

    如何使用GM_xmlhttpRequest提交到基本的外部表单页面?

  19. 19

    如何使用node.js和gm创建PDF缩略图

  20. 20

    如何使用异步GM_xmlhttpRequest以原始顺序返回值?

  21. 21

    OCMock如何工作?

  22. 22

    这个fork()如何工作

  23. 23

    如何使kGADAdSizeSmartBannerPortrait工作

  24. 24

    'cmp'命令如何工作?

  25. 25

    haskell代码如何工作?

  26. 26

    “ extern C ++”如何工作?

  27. 27

    TryParse方法如何工作?

  28. 28

    Rails路由如何工作?

  29. 29

    WebHook如何工作?

热门标签

归档