我想制作一个Chrome扩展程序,每隔一秒打开一个URL列表。我在制作Chrome扩展程序/应用程序方面没有太多经验。我已经拥有了代码中最重要的部分,但有些东西并不能很好地运行。我尝试了很多在互联网上找到的东西。我尝试使用Chrome应用而不是Chrome扩展,但这会显示一些错误。如果我启动代码,它不会在控制台中显示错误,但没有任何事情发生。我希望你能找到解决方案!
代码。
manifest.js
{
"name": "PageViewer",
"description": "Page Viewer extensions.",
"browser_action": {
"default_icon": {
"38": "logo-16.png"
},
"default_title": "Ready for start!",
"default_popup": "window.html"
},
"icons": {
"128": "logo-128.png",
"16": "logo-16.png"
},
"permissions": [
"tabs"
],
"manifest_version": 2,
"version": "0.1"
}
window.html
<!DOCTYPE html>
<html>
<head>
<script src="background.js"></script>
</head>
<body>
<div><input type="button" value="Start" class="start"></div>
</body>
</html>
background.js
chrome.app.runtime.sendRequest.addListener(function() {
var param = 0;
var reload = {
page: function() {
chrome.tabs.getCurrent(function (tab) {
param++;
chrome.tabs.update(tab.id, {url: "http://testsite.com/id/" + param});
});
}
}
document.getElementsByClassName("start").onclick = function() {
setInterval(reload.page(), 11000);
}
});
答案 0 :(得分:0)
首先,在浏览器打开的整个过程中,您的background.js不会在后台运行。它是由弹出窗口打开触发的。 Useful explaination。如果您希望它在后台运行,请将其从.html中删除,然后将以下内容添加到清单中:
"background": {
"scripts": ["background.js"]
},
现在在chrome://扩展页面上,您应该看到&#34;检查视图:后台页面&#34;通过您的应用程序但是,您甚至可能不需要扩展程序的后台脚本。如果您只想在单击图标时执行操作(浏览器操作),则您不需要添加此项。
其次,如上所述,您的听众的.app。*表示它仅适用于应用,而非扩展。
出于某种原因,我在你的onclick事件上遇到了麻烦,而且我并不熟悉它。在脚本中我通常做的是
function fillPopup(){
var elem = document.getElementById('start');
elem.addEventListener('click', funcdostuff);
}
document.addEventListener('DOMContentLoaded', fillPopup)
我不完全确定您点击开始按钮时要尝试初始化的内容。我的建议是为你想要做的事情绘制或概述初始化的路径,然后确保它对api有效。例如,您的初始代码为
等待浏览器单击图标(在清单中定义)的操作
哪个启动.html
然后.html启动脚本
脚本等待按下开始按钮
如果这个建议不适合你,我很抱歉,但是既然你说你是Chrome应用程序和插件的新手,我个人觉得这是一个很好的起点,在决定把它放在哪里时。