【发布时间】:2014-08-07 21:05:06
【问题描述】:
我正在尝试编写一个 Chrome 扩展程序来突出显示在扩展程序的文本字段中输入的某些单词
例如:我在扩展区输入“web”,按下按钮。在活动选项卡上,所有“网络”字词都应突出显示。
我找到了一个不错的web-page,它具有我需要的所有功能。
在我的代码中,当我尝试在我的扩展程序中使用它们时,没有任何效果。
清单文件
{
"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,我真的不明白如何使这一切正常工作。
【问题讨论】:
-
您以错误的方式处理此问题。在弹出上下文中运行的代码不能充当内容脚本。我建议您查看message passing,因为您需要实现以下工作流程:1)用户在弹出窗口中输入文本。 2) 弹出窗口向内容脚本发送消息。 3) 内容脚本处理 DOM 操作。
标签: javascript html google-chrome google-chrome-extension