【问题标题】:How to store information globally so multiple TamperMonkey/GreaseMonkey scripts can access it?如何全局存储信息以便多个 TamperMonkey/GreaseMonkey 脚本可以访问它?
【发布时间】:2017-07-25 23:49:11
【问题描述】:

如何在全局范围内存储信息,以便多个 TamperMonkey/GreaseMonkey 脚本可以访问它并且还可以跨多个域(跨域)共享?

在 TamperMonkey 或 GreaseMonkey 中没有可用的文档。

我尝试使用GM_SuperValueGM_setValue/GM_getValue 脚本,但这些存储值的范围仅限于存储它的脚本,如here 所述。因此,无法从脚本 B 重试从脚本 A 存储的值。

LocalStorage 解决了脚本 A 和 B 在同一个域上使用的问题。但不能解决跨域问题。

有没有办法跨多个脚本跨域使用共享内存?

cmets 后更新:
我有一个从脚本 X 中的域 A 获得的标志。我需要在脚本 Y 的域 B 中使用这个标志。

【问题讨论】:

  • 你对这两个域都有控制权吗?
  • 没有。如果我有控制权,我根本不会使用 TamperMonkey。我正在构建一个功能来自动化我的日常生活。
  • “我正在构建一个功能来自动化我的日常工作。”您能否进一步描述您想要实现的目标?
  • 只需使用一个脚本,它会根据当前 url 执行操作。
  • “做事”是什么意思?您可以在 Question 中包含您尝试过的javascript 吗?

标签: javascript greasemonkey tampermonkey


【解决方案1】:

您可以使用<iframe> 元素和window.postMessage() 跨不同域进行通信。其中postMessage() 的第二个参数是发送消息的targetOrigintargetOrigin,如果不是"*",必须匹配目标windowprotocolporthostname

猜你喜欢
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多