更改每日邮件链接的颜色在Google结果页面上不起作用

时间:2016-07-22 09:24:16

标签: javascript jquery google-chrome-extension

我有一个基本上由此构成的扩展(使用jQuery):

$('a[href*="dailymail"]').css({'background':'#333'})

它在常规链接上运行得很好。

但它不适用于Google搜索结果,因为该链接的href部分实际上是Google重定向网址,实际网址属于data-href属性。

我的问题是

$('a[data-href*="dailymail"]').css({'background':'#333'}) 

不起作用。我是否在匹配属性/值或Google的搜索结果页面时遇到问题,或者是什么?

任何想法的TIA。

1 个答案:

答案 0 :(得分:1)

您的问题可能就是代码执行时的问题。

Google页面动态加载其搜索结果(例如,用于即时用途)。如果您的代码在内容脚本中执行,那只能保证它在解析静态DOM后执行。

$(selector).css()通过向代码运行时匹配的元素添加内联样式来运行。因此,结果(稍后添加)不受影响。

最明显的解决方案是简单地注入CSS,而不是JS代码:

"content_scripts" : [{
  "matches": ["*://*/*"],
  "css": ["dailymail.css"]
}]
a[href*="dailymail"], a[data-href*="dailymail"] {
  background: #333;
}

这应该具体到足以应用;如果没有,请尝试添加!important

如果要以编程方式控制此操作,请考虑在页面中添加<style>元素。

或者,你可以watch the page for newly added links