【问题标题】:Chrome extension content scripts injecting into images注入图像的 Chrome 扩展内容脚本
【发布时间】:2014-07-07 21:29:49
【问题描述】:

我觉得问这个很愚蠢,但我这辈子都做不到。

问题的要点:我有一个 chrome 扩展,其中包含一个内容脚本注入的 javascript 弹出 UI,该 UI 嵌入到加载的页面中。用户可以单击 chrome 扩展栏中的按钮并打开它。在这种情况下打开意味着使用简单模式弹出窗口取消隐藏和显示。这一切都很好。

但是,当我将 JPG 加载到浏览器中时,就像说只是去这里 http://customersrock.files.wordpress.com/2007/07/bunny.jpg 它仍然会将内容脚本信息注入到页面中。 似乎只有 jpg 会受到影响。 PNG 和 gif 不会(尽管我没有对图像格式进行过广泛的测试)。但是,由于它是 JPG 而不是完整的网站,因此注入的内容不会被隐藏。它没有样式,只是坐在图片下方,就像这样(请原谅这张图片的大小):

我的内容脚本匹配如下

 "matches": [ "http://*/*", "https://*/*"],
 "exclude_matches":["*://*.png", "*://*.jpg", "*://*.gif"],

老实说,我什至不确定排除匹配是否正确完成,或者说实话是否真的有效。 chrome 提供 jpg 的方式是否与其他图像格式不同?无论如何,感谢您的帮助!这是一个令人沮丧的问题。

感谢您的帮助!

【问题讨论】:

  • 匹配内容脚本中的 MIME 类型 (Content-Type) 目前是 Chrome 中的一个未解决问题:code.google.com/p/chromium/issues/detail?id=35070 如果已修复,您可以仅匹配 HTML,而不是尝试通过 URL 排除每种类型模式或“扩展”。
  • 哦,这当然解释了为什么当我尝试它时它不起作用哈哈。这会让事情变得简单得多。好吧,谢谢罗伯特的信息!我会密切注意那个错误,虽然它在这一点上似乎已经很老了 x_x。
  • 可能重复:“exclude_matches” in manifest.json does nothing? 简短回答:这是一个已知错误;尝试使用exclude_globs 而不是exclude_matches。我不确定它是否适用于您的情况,但值得一试。

标签: google-chrome-extension


【解决方案1】:

由于这是一个已知的错误,我有另一种方法来解决这个问题。将您的脚本包含在 If statement 中,如下所示:

if (window.location.pathname.split('.jpg') < 1) {
    //
    // Your script here.
    //
}

然而,这会将脚本注入jpg 页面,但不会在if statement 中运行脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多