我希望你能帮助我。
我正在尝试创建一个Chrome扩展程序,它可以将当前选项卡的源加载到一个变量中。
目前为止,我有:
manifest.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);
});
但是这会加载空白页面的源代码。我需要怎么做才能获取活动页面的源代码。
我已经阅读了一些资料,认为我需要使用内容脚本和监听函数,但我一直在搜索,所有的答案对我来说都很复杂。您是否能够给我一些简单的例子呢?
非常感谢您的反馈!
谢谢
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与之前的版本产生完全相同的输出,无论我激活哪个页面。
activeTab
权限)。 - Rob W