Chrome 扩展:在查看 PDF 时注入内容脚本

时间:2021-01-30 18:20:54

标签: google-chrome google-chrome-extension pdf-viewer

我正在测试一个 Chrome 扩展程序,它可以显示用户当前正在查看的 PDF 文件的一些信息,最好作为 iFrame 插入。我不希望这自动发生,所以我使用后台脚本来监听点击事件,然后注入内容脚本。 (扩展程序与外部服务器通信,但这与此问题无关。)

这是我的manifest.json

{
  "name": "Test",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "Test",
  "background": {
    "scripts": [
      "background.js"
    ],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Test"
  },
  "permissions": [
    "activeTab"
  ]
}

这是background.js

hrome.browserAction.onClicked.addListener(function (tab) {

    chrome.tabs.executeScript({'file': 'popup.js'})
    
});

这里是popup.js

var widgetHtml = 
  '<div id="main" style="position: fixed;top: 14px;">'+
  '  <p>some stuff goes here</p>'+
  '</div>';

var iframe = document.createElement('iframe');
document.body.insertBefore(iframe,document.body.firstChild)
iframe.contentDocument.body.innerHTML = widgetHtml;

这在非 PDF 页面上就像一个魅力,但它不会在 PDF 页面上注入任何内容。如果我在控制台中使用确切的 popup.js 脚本,它当然也能正常工作。

我已经阅读了 Run a Chrome Plugin On a PDF Page,它试图自动检测 PDF,而这个 How to inject content script view on the PDF viewer?,但它似乎不起作用。我错过了什么?

0 个答案:

没有答案
相关问题