gpt4 book ai didi

userscripts - GM_getTab(cb) 如何工作?

转载 作者:行者123 更新时间:2023-12-03 14:12:06 32 4
gpt4 key购买 nike

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

但我不知道如何使用它们;他们接受什么值(value),你得到什么样的对象?
您如何使用这三个功能,我的目的是否正确?

GM_getTab(cb)
Get a object that is persistent as long as this tab is open.

GM_saveTab(tab)
Save the tab object to reopen it after a page unload.

GM_getTabs(cb)
Get all tab objects in an array to communicate with other scrips instances.

(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 中):
Object {rand: 0.9303610376082361}VM779:11 0.9303610376082361VM779:14 Other tab: 366 has value: 0.417106909211725VM779:13 I bet I am the tab named: 371

I added access in the chrome console using this user script, (based on the instructions on the indicated @match page):

// ==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() 访问。我不确定我会指望这一点,但我可能会尽量减少我留下的东西。

关于userscripts - GM_getTab(cb) 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793331/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com