javascript - 在 Chrome 扩展上下文菜单中修改 DOM 的权限
问题描述
我有 chrome 扩展开发的中级知识。
语境:
- Manifest 具有 activeTab 和 contextMenus 权限。
- 单击上下文菜单项应将内容注入 DOM
- 这适用于常规网页,但在默认的 Chrome PDF 查看器上失败,并出现以下错误:
Cannot access contents of the page. Extension manifest must request permission to access the respective host.
但是,如果我首先使用键盘命令注入内容,然后在上下文菜单操作中修改该内容,则它可以正常工作。
所以,
为什么上下文菜单操作无法在 PDF 页面中添加 DOM 节点(当常规页面有效时)
为什么使用键盘命令添加 DOM 节点,然后使用上下文菜单操作对其进行修改?
编辑:使用上下文菜单操作时不起作用的代码:
注入内容.js
let wrapper = document.getElementById(SUTRA_ELEMENT)
if (!wrapper) {
wrapper = document.createElement('div')
wrapper.id = SUTRA_ELEMENT
document.body.prepend(wrapper)
}
// modify wrapper
当通过 Chrome PDF 查看器上的上下文菜单操作运行时,会导致上述错误。但是,通过键盘命令运行时它可以正常工作。通过键盘命令运行它后,通过上下文菜单操作运行允许修改已经前置的元素。
解决方案
推荐阅读
- mysql - Laravel 按查询分组
- django - 如何在 Django 中预取相关对象?
- apache-spark - 如何使用 Scala 从 Spark DataFrame 中删除仅包含空值的列
- c# - 如何更改查询以使结果不等于 NULL
- php - 如何散列密码?
- google-apps-script - OnRow 在工作表中添加事件和更新单元格
- python - 找到轮廓时断言失败
- javascript - Try/Catch 阻止 expressjs 中的意外行为
- android - 使用适配器时,'when' 表达式必须是详尽的错误
- java - Tika、Maven、依赖项......为什么 Tika 使用 EmptyParser?