【问题标题】:How to send data across domain using javascript and tampermonkey?如何使用javascript和tampermonkey跨域发送数据?
【发布时间】:2017-02-13 23:05:42
【问题描述】:

我关注一个人们发布许多链接的论坛。我使用 javascript 和 tampermonkey(chrome 扩展)制作了一个脚本,它首先在新标签中打开所有未读线程,然后查找具有链接的未读帖子并在新标签中打开这些链接。

这个脚本为我节省了大量时间,而且运行良好。不过,我想改进它。

我想更改刚刚打开的页面的标题,以便它显示发送到该页面的链接所在的线程的名称。例如:

在“Fruits”线程上,有一个链接可以打开一个指向“www.apple.com”网站的新标签。我想将此页面的标题更改为“水果 - 页面名称”,以便我知道此链接来自哪个线程。

当我的脚本在论坛域内导航时,我使用 localstorage 和 sessionStorage 将信息从一个页面发送到另一个页面,但我不知道可以使用什么来跨不同域发送信息。

另外,我想知道是否有办法告诉tampermonkey根据打开的链接运行脚本。

我确实知道如何更改页面的标题,问题是获取论坛域上的线程名称并使用它来更改与论坛不同域上的新标签上的标题域。

【问题讨论】:

  • 可以使用document.title = "abc"设置title of document
  • 谢谢,但我的问题不是更改标题,而是将论坛域中的线程名称传递给另一个不同域下的新选项卡,以便我可以使用它更改页面标题。
  • 设置相同的脚本在所有相关页面上运行。然后,您可以使用GM_setValue()GM_addValueChangeListener() 跨域进行通信,从一个脚本实例到同一脚本的另一个实例。
  • 一种更简单的方法适用于大多数情况,但不是全部情况下,当您打开新选项卡时,在 URL 参数或哈希中传递额外信息。

标签: javascript jquery cross-domain tampermonkey


【解决方案1】:

Localstorage 不允许访问不同的域。您需要将该数据存储在数据库服务器中。最简单的方法是注册一个数据库服务,它提供了你可以使用的 API。如果您要自己托管,则必须编写自己的脚本,以允许 CORS 提供对数据库服务器的访问。

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2020-12-20
    • 2010-09-22
    相关资源
    最近更新 更多