我需要创建执行以下操作的Google Chrome扩展程序:
读取网址数组(可能有2000个网址) 对于每个网址: 1)我在选项卡中显示页面 2)我在新加载的页面中提取了一些html内容 3)我用提取的内容构建了一个新的url,用于将信息发送到我自己的本地服务,它保存了信息(我想,我只需要使用此新的url更新选项卡)
在那之后,没关系,我只是用下一个网址再次执行相同的任务。
要开始执行此工作,我创建了以下3个文件。
Manifest.json
{
"manifest_version": 2,
"name": "Test",
"description": "Test to read pages",
"version": "1.0",
"browser_action": {
"default_title": "test page reader",
"default_popup": "popup.html",
"default_icon": "icon.png"
},
"permissions": [
"activeTab"
]
}
popup.html 该文件直接加载popup.js
<html>
<head>
<script type="text/javascript" src="popup.js"></script>
</head>
<body>
<div id="test" style="width: 100px; height: 100px; margin-top: 15px;"></div>
</body>
</html>
popup.js
urls = ["http://localhost/page1.php",
"http://localhost/page2.php",
"http://localhost/page3.php"
];
for (i = 0; i < urls.length; i++) {
myUrl = urls[i]+"¤t="+i; // add "current" parameter to know where I am
// callback function
callbackFct = function() {
// affecte le style de la div
document.body.style.backgroundColor = "red";
};
// update tab and execute callbackFct
chrome.tabs.update(null, {url:myUrl}, callbackFct);
}
我的代码有问题:
回调函数修改popup.html的背景颜色,而不是页面的背景。 如何修改选项卡的内容而不是popup.html的内容?当此操作正常时,我可以替换为数据提取(步骤2)。 更新选项卡后,是使用回调函数的写入方式吗? 目标是等待DOM页面完全加载。 (第3步)在哪里致电我的服务以保存数据的最佳位置?是在回调函数中使用当前选项卡的更新吗?
非常感谢您的帮助和建议。