我将制作一个非常小的 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"
}]
}
答案 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() {...});
具有相同的效果。