【发布时间】:2013-09-05 17:33:21
【问题描述】:
我希望你能帮助我。
我正在尝试在 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 给出的输出与之前的完全相同,无论我在哪个页面都处于活动状态。
【问题讨论】:
-
相关答案:Open a new Google Chrome tab and get the source。重用代码很容易得到当前标签的源代码(顺便别忘了加上
activeTabpermission)。
标签: javascript jquery google-chrome google-chrome-extension