Google chrome extension 在PDF查看器页面上运行Chrome扩展

Google chrome extension 在PDF查看器页面上运行Chrome扩展,google-chrome-extension,Google Chrome Extension,如果您使用Chrome并转到此页面:我想知道您是否可以在该页面上运行您的Chrome扩展 我可以使用content_脚本或background.js 当I console.log登录鼠标移动时,或者通常插入内容_脚本时,不会显示任何内容 我注意到了这篇文章,但不幸的是,它对我不起作用 这是我的manifest.json: { “名称”:“扩展名”, “描述”:“新奇的东西”, “版本”:“1.0.0”, “清单版本”:2, “权限”:[ “https://*/*”, “http://*/*”,

如果您使用Chrome并转到此页面:我想知道您是否可以在该页面上运行您的Chrome扩展

我可以使用content_脚本或background.js

当I console.log登录鼠标移动时,或者通常插入内容_脚本时,不会显示任何内容

我注意到了这篇文章,但不幸的是,它对我不起作用

这是我的
manifest.json

{
“名称”:“扩展名”,
“描述”:“新奇的东西”,
“版本”:“1.0.0”,
“清单版本”:2,
“权限”:[
“https://*/*”,
“http://*/*”,
“标签”,
“网络请求”,
“webRequestBlocking”,
“网络导航”,
“管理”,
“会议”,
"",
“活动选项卡”
],
“背景”:{
“脚本”:[“background.js”],
“持久”:正确
},
“内容脚本”:[
{
“匹配项”:[“http://*/*”,“https://*/*”],
“js”:[“content_script.js”],
“match_about_blank”:true,//docs.google.com需要。不知道为什么!
“所有框架”:正确,
“运行时间”:“文档开始”
},
{
“匹配项”:[“http://*/*”,“https://*/*”],
“js”:[“document_idle.js”],
“match_about_blank”:true,//docs.google.com需要。不知道为什么!
“所有框架”:正确,
“运行时间”:“文档空闲”
}
]
}

现在,我在
content\u script.js
中有一个
console.log('hi')
,但是当我打开inspector时,我没有看到它的输出,这让我相信它永远不会运行

它运行了,但没有在Chrome内部PDF查看器上运行,后者是Chrome的扩展

通过右键单击->检查打开DevTools时,DevTools不会查看PDF文件,而是查看
chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/index.html
。 因此,您没有看到
console.log('hi')

content\u script.js
运行在不同的上下文中,您可以通过在Windows中按
F12
打开DevTools或从
More tools
中查看
console.log
输出,它是注入的
content\u script.js的上下文

您可以通过执行以下操作来检查上下文差异:

window.location.href
在两个控制台上

而且由于无法在服务器上运行
content\u script.js

chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/index.html
,我认为您无法使用默认的Chrome pdf查看器来操作pdf内容。

假设您使用的是内置pdf查看器,而不是第三方扩展,当然可以在Chrome中的pdf文件上运行内容脚本,所以代码中一定有错误。但是请注意,PDF的实际内容显示在运行内部插件的
元素中,因此不会在主文档中冒泡鼠标事件。为此,您必须在整个页面上使用透明div,但这会破坏查看器的功能
content\u script.js
中,但当我打开inspector时,我没有看到它的输出,这让我相信它从未运行过。在您的情况下,一定还有其他原因。例如,正如我已经建议的,您可能正在使用自定义查看器。可能还有其他原因,但我不喜欢猜测:正确的方法是调试,即尝试不带扩展的新配置文件,尝试从扩展中删除所有其他部分,尝试旧/新版本的浏览器,等等。此外,控制台输出可能会被页面或扩展清除,因此不要依赖它。使用devtools检查内容脚本代码并设置断点。我和Chrome Extension dev rel中的某个人谈过,他们说这是不可能的。我引述:“至于你的PDF问题,不,你不能插入,因为查看器本身就是一个扩展。你也许可以用Chrome DevTools协议做些什么,但在那一点上,你已经远离了杂草和YMMV。”他们根本不明白你在问什么,正如我多年来观察到的那样,他们并不善于理解正常人。他们认为你想注入实际的插件,这是不可能的。打开pdf的选项卡本身是完全可注入的。