【问题标题】:CSS content script issue in Google Chrome extensionGoogle Chrome 扩展中的 CSS 内容脚本问题
【发布时间】:2013-01-02 21:12:10
【问题描述】:

我正在创建一个简单的 Chrome 扩展程序,它使用 content script 阻止 Google homepage 上的 "Google" logo image。我按照内容脚本页面上的说明进行操作,但它似乎仍然无法正常工作。谁能发现我做错了什么?


编辑:我已经用flickr.com 等其他网站对其进行了测试,并且效果很好。我还搜索了 Google 主页 CSS,但无法确定哪个 CSS 规则覆盖了我的 CSS。有任何想法吗?如何进行更强大的 CSS 注入,以便没有其他 CSS 可以覆盖我的?

ma​​nifest.json

{
  "manifest_version": 2,
  "name": "Google Logo Blocker",
  "description": "This extension blocks the Google logo image.",
  "version": "1.0",

  "content_scripts": [
   {
     "matches": ["http://www.google.com/"],
     "css": ["blocker.css"]
   }
  ],

  "browser_action": {
    "default_icon": "icon.png"
  }
}

blocker.css

img {
    display: none !important;
}

【问题讨论】:

  • 可以截图吗

标签: css google-chrome google-chrome-extension content-script


【解决方案1】:

您的代码对我有用。您使用的是美国 Google,而不是国际版,对吧?

以防万一,请将您的 matches 更改为:

"matches": ["http://*.google.com/", "https://*.google.com/"],

更直接地定位徽标。这在大多数情况下都有效:

#hplogo {
    display: none !important;
}


要获得全面的国际 Google 支持,请将清单的 content_scripts 部分更改为:

"content_scripts": [ {
    "matches":          ["http://*/*", "https://*/*"],
    "include_globs":    ["http://*.google.*/*", "https://*.google.*/*"],
    "css":              ["blocker.css"]
} ],

还可以根据需要使用exclude_matches 和/或exclude_globs



如果还是不行,就照常说:

  1. 准确网址
  2. Chrome 版本
  3. 操作系统
  4. 其他扩展有效

【讨论】:

  • 尽管您解决了这个问题,但重要的是要强调 google 会将您重定向到您的本地域。例如,如果我点击http://google.com,它会重定向https://google.co.in
  • @juzerali,是的,我在答案中添加了更多 i18n。不过,OP 的个人资料显示他在美国。
  • @BrockAdams: "http://*.google.*/*" 域在匹配模式中不受支持,请检查 this
  • @Sudarshan,他们不在匹配模式中,他们在include_globs,他们工作。请参阅the actual docs 或尝试一下。
  • 我觉得这不再适用于最新版本的 Chrome(即 25.x)。谁和我在一起?
【解决方案2】:

现代版是<img>标签,国际版是带有背景图片的<div>标签。无论如何,它们具有相同的id = hplogo 的差异,所以这对你有用。

Click for Larger Image

使用

#hplogo{
       display:none !important;
}

它将删除 google 徽标。

【讨论】:

  • 不,它是(大多数)布局上的图像标签。但是,它确实有 id hplogo
  • @BrockAdams:我检查了google.co.ingoogle.de,这里是一个div 标签
  • <div dir="ltr" title="Google" align="left" id="hplogo" onload="window.lol&&lol()" style="background:url(images/srpr/logo3w.png) no-repeat;background-size:275px 95px;height:95px;width:275px"><div nowrap="nowrap" style="color:#777;font-size:16px;font-weight:bold;position:relative;left:214px;top:70px">Deutschland</div></div>首页代码
  • 请注意,他的匹配对象是 http://www.google.com/不是国际版本。对于更现代的布局,徽标是:<img width="275" height="95" style="padding-top:112px" onload="window.lol&&lol()" id="hplogo" src="/images/srpr/logo3w.png" alt="Google">
  • 但是你的 CSS 应该可以正常工作,不管怎样,因为它偏离了 id(似乎 是不变的)而不是标签类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-19
  • 2012-07-04
  • 2022-11-07
相关资源
最近更新 更多