【发布时间】:2016-04-03 18:02:55
【问题描述】:
我正在为 chrome 编写一个迷你插件。在插件中,我插入了一个代码来播放 ajax 成功的音频。它不适用于使用 https 的网站,但适用于使用 http 的网站。你能帮我编辑一下吗?
manifest.json
mystyle.js
对于图像的全分辨率:
【问题讨论】:
标签: google-chrome google-chrome-extension
我正在为 chrome 编写一个迷你插件。在插件中,我插入了一个代码来播放 ajax 成功的音频。它不适用于使用 https 的网站,但适用于使用 http 的网站。你能帮我编辑一下吗?
manifest.json
mystyle.js
对于图像的全分辨率:
【问题讨论】:
标签: google-chrome google-chrome-extension
乍一看,您的代码有两个问题:
您不应将chrome.tabs.getSelected 和chrome.browserAction 放入mystyle.js。 mystyle.js 是一个content script,只能访问有限的chrome api。
但是,内容脚本有一些限制。他们不能:
使用 chrome.* API,以下情况除外:
- 扩展(getURL,inIncognitoContext,lastError,onRequest, 发送请求)
- i18n
- 运行时(connect、getManifest、getURL、id、onConnect、onMessage、sendMessage)
- 存储
使用由其扩展页面定义的变量或函数
- 使用网页或其他内容脚本定义的变量或函数
您不能从 https 网页发送 http 请求,因为它受 SOP 限制并且是浏览器行为。要解决这个问题,您应该将您的 http 请求逻辑移动到后台页面并将服务器 url 添加到权限,请参阅我的以下答案以获取更多信息。
【讨论】: