Javascript Can';t通过Chrome扩展中的函数访问DOM

Javascript Can';t通过Chrome扩展中的函数访问DOM,javascript,html,google-chrome,google-chrome-extension,Javascript,Html,Google Chrome,Google Chrome Extension,我正在尝试编写一个Chrome扩展,突出显示在扩展文本字段中输入的某些单词 例如:我在分机区域输入“web”,按下按钮。在活动选项卡上,应突出显示所有“web”单词 我找到了一个具有我所需要的所有功能的nice 在我的代码中,当我尝试在扩展中使用它们时,没有任何效果 清单文件 { "manifest_version": 2, "name": "Word search & highlight", "version": "1.0", "icons": { "16": "16x16

我正在尝试编写一个Chrome扩展,突出显示在扩展文本字段中输入的某些单词

例如:我在分机区域输入“web”,按下按钮。在活动选项卡上,应突出显示所有“web”单词

我找到了一个具有我所需要的所有功能的nice

在我的代码中,当我尝试在扩展中使用它们时,没有任何效果

清单文件

{
"manifest_version": 2,

"name": "Word search & highlight",
"version": "1.0",

"icons": {
    "16": "16x16.png",
    "32": "32x32.png",
    "48": "48x48.png",
    "128": "128x128.png"
 },
"content_scripts": [
{
  "matches": [ "*://*/*" ],
  "js": [ "popup.js"],
  "run_at": "document_end"
 }
],

"permissions": [
"tabs", "activeTab"
],


"browser_action": {
   "default_title": "Start searching",
    "default_icon": "48x48.png",
   "default_popup": "popup.html"
 }
}
popup.html

<!DOCTYPE html>
<html>
<head>
<script src="popup.js"></script>
<title></title>
</head>
<body>
<input type="text" id="searchtextfield"><br>
<input id="btn_save" value="Save" type="button">
<input id="btn_search" value="Search" type="button"><br>
</body>
</html>



下面是
popup.js
文件:太长了,所以我制作了一个pastebin文档:


我无法从这些函数中获取网页的innerHTML,我也不知道如何让这些都工作。

sean adams是正确的,您的浏览器操作(popup.html)无法直接与内容脚本(popup.js)通信。您可以将内容脚本视为用户访问的任何页面的附加内容,而浏览器操作直接集成为您的chrome扩展的一部分

因此,您确实需要使用消息传递进行通信。不过很简单。首先,我建议将浏览器操作弹出窗口重命名为类似于
browser\u popup.html
。为了简洁起见,我将使用一个简化的示例:

//browser_popup.html
<input type="button" id="my_button" value="Click Me">
<script src='browser_popup.js'></script>
在内容脚本(我们称之为content.js)中,您需要监听消息:

//content.js
chrome.runtime.onMessage.addListener(function(message) {
  if (message == 'button_clicked') {
    // code to modify page...
  }
}); 

你用错误的方式处理这个问题。在弹出上下文中运行的代码不能充当内容脚本。我建议您研究一下,因为您需要实现以下工作流:1)用户在弹出窗口中输入文本。2) 弹出窗口将消息发送到内容脚本。3) 内容脚本处理DOM操作。
//content.js
chrome.runtime.onMessage.addListener(function(message) {
  if (message == 'button_clicked') {
    // code to modify page...
  }
});