Chrome扩展程序页面查看器

时间:2014-05-15 11:28:28

标签: javascript html google-chrome google-chrome-extension

我想制作一个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);
    }

});

1 个答案:

答案 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应用程序和插件的新手,我个人觉得这是一个很好的起点,在决定把它放在哪里时。