Javascript 在PDF页面上运行Chrome插件

Javascript 在PDF页面上运行Chrome插件,javascript,jquery,google-chrome,pdf,google-chrome-extension,Javascript,Jquery,Google Chrome,Pdf,Google Chrome Extension,使用Chrome扩展,我想: 检测当前选项卡是否已加载PDF文件 在popup.html中添加一个按钮,用于将PDF转换为HTML5 获取PDF文件的URL并将其发送到在线服务 为了完成#1,我认为本页中的一个解决方案可以奏效: 问题是我很难让扩展在PDF页面上运行 如何在PDF页面上运行扩展名的background.js 我的清单文件当前: { "matches":[ "https://*/*", "http://*/*" ], "run_at":"

使用Chrome扩展,我想:

  • 检测当前选项卡是否已加载PDF文件
  • 在popup.html中添加一个按钮,用于将PDF转换为HTML5
  • 获取PDF文件的URL并将其发送到在线服务
  • 为了完成#1,我认为本页中的一个解决方案可以奏效:

    问题是我很难让扩展在PDF页面上运行

    如何在PDF页面上运行扩展名的
    background.js

    我的清单文件当前:

    {
       "matches":[
          "https://*/*",
          "http://*/*"
       ],
       "run_at":"document_idle",
       "css":[
          "jquery-ui.css",
          "resizable.css"
       ],
       "js":[
          "jquery.js",
          "jquery-ui.js",
          "storage.js",
          "background.js"
       ],
       "all_frames":true
    }
    

    在清单文件中,您应该具有以下内容:

    "content_scripts": [
     {
       "matches": ["*://*.pdf"],
       "js": ["background.js"]
     }
    ]
    

    这是我当前的清单文件-
    {“matches”:[“https://*/*”,“http://*/*”],“run_at:“document_idle”,“css:[“jquery ui.css”,“resize.css”],“js:[“jquery.js”,“jquery ui.js”,“storage.js”,“background.js”],“all_frames”:true},
    您可能认为它也会与PDF匹配(请注意,PDF的结尾并不总是有.PDF),这有什么问题?
    background.js
    不会加载到以
    .pdf
    结尾的页面上?是的-在chrome pdf查看器上不会加载background.js。如果你的
    background.js
    与你链接的问题相同,那么你也必须将
    权限添加到你的清单中。你可能需要[re]阅读扩展架构文章,因为背景页面是一个完全不同的页面(您可以将其视为一个隐藏的浏览器选项卡,它有自己的DOM和脚本)。通过使用这样一个误导性的文件名,您可能错过了一个简单的解决方案,即检查是否存在
    body>embed[name=“plugin”][type=“application/pdf”]
    ,您可以在pdf页面的devtools检查器中看到这一点。