我希望你可以帮助我。
我正在尝试在 Chrome 中创建一个扩展,它将活动选项卡的源加载到变量中。
到目前为止我有:
清单.json
{
"name": "My Extension",
"manifest_version": 2,
"version": "0.1",
"description": "Does some simple stuff",
"browser_action": {
"default_icon": "logo.png"
},
"background": {
"scripts": ["main.js"]}}
main.js
chrome.browserAction.onClicked.addListener(
function(tab) {
var ps1 = document.getElementsByTagName('html')[0].innerHTML;
window.alert(ps1);
});
但这会加载空白页面的页面源。我需要做什么才能获取活动页面的源。
我已经完成了一些阅读,我认为我需要使用内容脚本和一些收听功能,我一直在搜索,但所有答案在我看来都非常复杂。你们中有人能给我一些简单的例子吗?
非常感谢您的反馈!
Regards
AdrianCooney 回答后更新:
我更改了清单以包含
"permissions": [
"tabs"
]
然后在 main.js 中我做了
chrome.browserAction.onClicked.addListener(function(activeTab) {
chrome.tabs.query({ currentWindow: true, active: true },
function (tabs) {
var ps1=document.getElementsByTagName('html')[0].innerHTML;
window.alert(ps1);
})
});
当我按下扩展按钮时,我会得到类似的信息
<html></html>
<body><script src="main.js"></script>
</body>
...无论我激活哪个选项卡。
再次尝试 chrome.tabs.getCurrent
chrome.browserAction.onClicked.addListener(function(activeTab) {
chrome.tabs.getCurrent(
function (tabs) {
var ps1=document.getElementsByTagName('html')[0].innerHTML;
window.alert(ps1);
})
});
无论我激活哪个页面,上述版本的 main.js 都会提供与之前版本完全相同的输出。