javascript - 除非我打开扩展开发工具,否则上下文菜单不起作用
问题描述
我正在尝试制作一个 chrome 扩展,让您可以使用上下文菜单将突出显示的一段文本添加到扩展的 DOM 中。这段代码可以正常工作,但只有当我让 devtools 检查扩展程序打开时。否则上下文菜单命令什么也不做。任何帮助将不胜感激。
Javascript代码:
if (typeof (document) !== "undefined"){
let wordList = []
const ulEl = document.getElementById("ul-el")
const CONTEXT_MENU_ID = "MY_CONTEXT_MENU"
const localStorageStuff = JSON.parse(localStorage.getItem("text"))
if (localStorageStuff){
wordList = localStorageStuff
console.log(wordList)
render(wordList)
}
function render(words) {
let renderWords = ""
for (let i=0; i<words.length; i++) {
renderWords += `
<li>
<a target='blank_' href='http://www.google.com/search?q=${words[i]}'>
${words[i]}
</a>
</li>
`
}
ulEl.innerHTML = renderWords
}
function getword(info) {
if (info.menuItemId !== CONTEXT_MENU_ID) {
return;
}
console.log("Word " + info.selectionText + " was clicked.")
wordList.push(info.selectionText)
console.log(wordList)
localStorage.setItem("text", JSON.stringify(wordList))
render(wordList)
}
chrome.contextMenus.removeAll(function() {chrome.contextMenus.create({
title: "Add log: %s",
contexts:["selection"],
id: CONTEXT_MENU_ID
})})
chrome.contextMenus.onClicked.addListener(getword)
}
清单.json
{
"name": "Memos",
"version": "1.0",
"manifest_version": 3,
"action": {
"default_popup": "index.html"
},
"permissions": [
"contextMenus",
"tabs",
"storage"
],
"background": {
"service_worker": "index.js"
}
}
解决方案
推荐阅读
- variables - gforth:如何检查变量是否设置为 arg 值
- javascript - aspnet 中的谷歌图表
- html - css伪元素曲线背景定位
- javascript - Discord.js 缺少 API 权限 [防止节点进程被终止]
- mongodb - 如何构建 bson.D{}
- ios - 在我的 iOS 应用中使用自定义字体会影响应用大小吗?
- php - 我收到错误 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) with the command sudo mysql on ubuntu
- python - 如何在*自定义目录*下的 GitHub 页面上部署 mkdocs 站点
- javascript - 我需要从我的后端 JS 文件调用一个计算函数到我的前端 HTML 文件,它是一个按钮
- python - cv2.error : OPENCV(4.4.0) 错误(-215 断言失败) size.height>0 && size,width>0)