【发布时间】:2014-03-18 22:24:54
【问题描述】:
我正在开发一个 Chrome 扩展程序,它将向一组特定的页面添加内容。根据我的研究,听起来我想要的是一个content script,它将为相应的页面执行。我可以使用content_script.matches manifest.json 字段指定“适当的页面”。
但是,我遇到的问题是内容脚本在一个孤立的世界中运行,separate from the rest of your extension。
我如何设想我的扩展是一组UI pages,将通过内容脚本嵌入到适当的页面上。 background page 将包含用于构建 UI 页面内容的代码。背景页面以及扩展的 UI 页面需要访问各种 Chrome API(例如本地存储),以及能够发出跨域请求以检索其数据。但是,这似乎是不可能的,因为内容脚本在一个孤立的世界中运行,并且无法访问我需要的 Chrome API。
Message passing 允许内容脚本从后台页面发送和接收数据,但不允许您获取 UI 页面并将其嵌入到当前网页中。
当我能够制作jQuery AJAX request from my content script for an UI page 时,我最初认为我在这方面取得了一些进展,但这只会让我获得 HTML 文件本身。我的 UI 页面依赖于代码以编程方式构建内容——它不仅仅是一个静态 HTML 页面。并且“构建页面”JavaScript 代码依赖于内容脚本不可用的 Chrome API。因此,如果我只是尝试将我所有的 UI 页面和 JavaScript 资源设为web_accessible_resources,我可以将它们注入到页面中,但它们将无法运行。
这让我想到了我的问题:内容脚本如何下拉或嵌入可以在后台页面中调用代码的UI pages?
【问题讨论】:
标签: javascript google-chrome google-chrome-extension