【问题标题】:How can I set the text's color on the situation that the page loading new text when I am pulling down the page?如何在下拉页面时页面加载新文本的情况下设置文本颜色?
【发布时间】:2016-06-08 12:18:39
【问题描述】:

我设计了一个chrome扩展来设置页面上文本的颜色,但它只能完成一些内容。当我拉下页面时,它会加载新文本。我希望这个新文本的颜色可以像之前的文本一样设置.如何设置代码?在 mainfest.json 中,我尝试设置 run_at,但它不起作用。 第二个问题是即使我设置了一些文本使用 style.color ,但是在我不能设置文本的颜色?我该如何设置这些?非常感谢!

【问题讨论】:

  • 如果可能,通过注入的 CSS 更改颜色,或使用 MutationObserver
  • @Iván Nokonoko 即使我可以在页面上设置颜色,一旦我向下滚动页面,它会在之前的内容之后刷新新内容,就像新闻列表一样,每次我向下滚动页面时,它会出现一些新的东西。也许我应该判断它刷新的那一刻,而不是我使用函数重新设置当前页面的颜色。但我不知道如何判断?
  • 出现的新内容是我之前设置的页面颜色原来的颜色。
  • 如果所有文本元素(包括新元素)都有一个公共类,您可以创建一个 CSS 规则来更改该类(例如:.textclass {color:blue})并使用chrome.tabs.insertCSS 或使用内容脚本创建一个新的 <script> 标记。一旦类样式被覆盖,所有新元素都应符合该样式。

标签: javascript google-chrome-extension


【解决方案1】:

一种可能的选择是通过programmatic injection

如文档中所述:

当您的 JavaScript 或 CSS 代码不应插入到与该模式匹配的每个页面中时,以编程方式将代码插入页面非常有用。

在页面中插入代码时请注意以下几点:

  • 您的扩展程序必须具有页面的跨域权限。
  • 它还必须能够使用 chrome.tabs 模块。

    您可以使用清单文件的权限字段获得这两种权限。

  • 设置权限后,您可以通过调用 tabs.executeScript 将 JavaScript 注入页面。
  • 要注入 CSS,请使用 tabs.insertCSS

可以在文档中找到这方面的示例。除此之外,类似的 SO 帖子 - Chrome Extension to change text style of specific website 也可能有所帮助。

【讨论】:

  • 即使我可以在页面上设置颜色,一旦我向下滚动页面,它会在之前的内容之后刷新新内容,就像新闻列表一样,每次向下滚动页面都会出现一些新的。也许我应该判断它刷新的那一刻,而不是我使用函数重新设置当前页面的颜色。但我不知道如何判断?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 2019-05-14
  • 2020-06-27
相关资源
最近更新 更多