chrome 对象或 chrome.tabs 对象无法从后台脚本以外的脚本访问
chrome object or chrome.tabs object not accessible from script other than a background script
我正在试验 chrome 扩展 API,我 运行 遇到了一个我不明白的问题,
我有一个背景脚本 "background.js" 和一个内容脚本 "content_script.js"。
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({code:"console.log('background script')"});
chrome.tabs.executeScript({file:"javascript/content_script.js"});
});
内容脚本
chrome.tabs.executeScript({code:"console.log('content_script')"});
后台脚本中的 console.log 完美运行,但在 content_script 中的脚本中,我收到 错误 --> "Cannot read property 'executeScript' of undefined"
这意味着我无法从内容脚本访问 chrome 对象或 chrome.tabs 对象。为什么会这样?
网页上下文中的内容脚本 运行,而不是扩展。
内容脚本无法访问所有 Chrome API。根据official documentation:
Content scripts are JavaScript files that run in the context of web
pages. By using the standard Document Object Model (DOM), they can
read details of the web pages the browser visits, or make changes to
them.
以下是内容脚本可以做什么的一些示例:
- 在网页中查找未链接的 URL 并将其转换为超链接
- 增加字体大小以使文本更清晰
- 在 DOM
中查找和处理微格式数据
Background Script 是一个单一的 long-运行ning 脚本来管理一些任务或状态。虽然后台脚本可以访问所有 Chrome API。
如果您想在内容脚本和后台脚本之间传递信息,请使用:Chrome Message Passing
我正在试验 chrome 扩展 API,我 运行 遇到了一个我不明白的问题,
我有一个背景脚本 "background.js" 和一个内容脚本 "content_script.js"。
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({code:"console.log('background script')"});
chrome.tabs.executeScript({file:"javascript/content_script.js"});
});
内容脚本
chrome.tabs.executeScript({code:"console.log('content_script')"});
后台脚本中的 console.log 完美运行,但在 content_script 中的脚本中,我收到 错误 --> "Cannot read property 'executeScript' of undefined"
这意味着我无法从内容脚本访问 chrome 对象或 chrome.tabs 对象。为什么会这样?
网页上下文中的内容脚本 运行,而不是扩展。
内容脚本无法访问所有 Chrome API。根据official documentation:
Content scripts are JavaScript files that run in the context of web pages. By using the standard Document Object Model (DOM), they can read details of the web pages the browser visits, or make changes to them.
以下是内容脚本可以做什么的一些示例:
- 在网页中查找未链接的 URL 并将其转换为超链接
- 增加字体大小以使文本更清晰
- 在 DOM 中查找和处理微格式数据
Background Script 是一个单一的 long-运行ning 脚本来管理一些任务或状态。虽然后台脚本可以访问所有 Chrome API。
如果您想在内容脚本和后台脚本之间传递信息,请使用:Chrome Message Passing