【发布时间】:2012-02-07 03:16:00
【问题描述】:
好的,我正在构建一个这样的扩展:
- 有一个浏览器操作,它调用一个 popup.html,它有一个输入字段、一个提交按钮和一个调用 javascript 操作的链接
- 一个 background.html 页面,通过 popup.html 接收输入值数据,然后使用它们将自定义 CSS 注入页面
我正在使用 localStorage 来存储输入数据以供将来使用。以下是我需要帮助的内容:
- 当点击 popup.html 中的按钮时,在 background.html(注入 CSS)中运行 javascript
- 将popup.html中输入字段的数据传递到background.html
我搜索了谷歌源代码,但实际上找不到任何东西。我不希望将 CSS 注入每个页面(我知道如何执行此操作)或单击浏览器操作图标时(我也知道如何执行此操作)。仅当用户将数据输入到 popup.html 并单击链接或按钮时,我才需要注入该 CSS。
更新: 我仍然无法做我需要做的事情。这是我的代码:
<script type="text/javascript">
var bgrSize = localStorage.getItem('gridSize');
function insert(){
chrome.tabs.executeScript(null, {code:'body{ backgroundImage: -webkit-linear-gradient(#eee 0.05em, transparent 0.05em); backgroundPosition: 100% 0 %; backgroundSize: 100% '+ bgrSize +';}'});
}
</script>
在我的 background.html 页面上。下面是从 popup.html 页面触发的内容:
function showGrid(){
chrome.extension.getBackgroundPage().insert();
}
单击按钮时会触发“showGrid”函数。 gridSize 数据已经存储在 localStorage 中(我有一部分 popup.html 会更新以显示 localStorage 信息)。 我究竟做错了什么?我就是想不通。顺便说一句,manifest.json 包括我的 background.html
【问题讨论】:
标签: javascript css google-chrome google-chrome-extension