Chrome:向下滚动页面,直到点击按钮

时间:2013-02-11 22:56:46

标签: jquery google-chrome-extension

我将制作一个非常小的 Chrome扩展程序,每隔5秒向下滚动一次,直到点击一个按钮。

我的问题是,当按钮点击工作时,我可以获得该事件。

popup.js

$("#stop").click(function() {
    alert(1);
});

$("#start").click(function() {
  setInterval(function(){ 
    $("html, body").animate({ scrollTop: $(document).height() }, 1000);
  }, 5000);
});

/*
$(window).load(function() {
  setInterval(function(){ 
    $("html, body").animate({ scrollTop: $(document).height() }, 1000);
  }, 5000);
});
*/

HTML

<!doctype html>
<html>
  <head>
    <title>Getting Started Extension's Popup</title>
    <style>
      body {
        min-width: 357px;
        overflow-x: hidden;
      }
      input {
        float: right;
      }
    </style>
    <script src="jquery-latest.js"></script>
    <script src="popup.js"></script>
  </head>
  <body>

    Classname <input type="text" name="classname" id="classname"><br>
    Interval: <input type="text" name="interval"><br>

    <button type="button" id="start">Scroll Down</button>
    <button type="button" id="stop" onclick="test()">Stop</button>
  </body>
</html>

清单

{
  "manifest_version": 2,

  "name": "One-click Kittens",
  "description": "This extension demonstrates a 'browser action' with kittens.",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": ["tabs", "http://*/*", "background"],
  "content_scripts": [ {
    "matches": ["http://*/*"],
    "js": [ "jquery-latest.js","popup.js" ],
    "matches": [ "http://*/*", "https://*/*"],
    "run_at": "document_end"
  }]
}

1 个答案:

答案 0 :(得分:0)

你很接近 - 你需要将你的代码保存在$(window).load()函数中;否则,你试图将事件监听器附加到尚未创建的元素上,这对你来说无关紧要。

无论如何,这应该可以解决问题:

$(window).load(function() {
    $("#stop").click(function() {
        alert(1);
    });

    $("#start").click(function() {
      setInterval(function(){ 
        $("html, body").animate({ scrollTop: $(document).height() }, 1000);
      }, 5000);
    });
});

这是奖金;而不是写$(window).load(function() {...}),这是长而笨重的,你可以写$(function() {...});具有相同的效果。