【编程之美】如何用脚本抢月饼之开发文档

题目:用你的代码,来实现抢月饼,请写出你的核心思路+代码/脚本。详情请看http://www.nowcoder.com/discuss/17165 

作品一:(获得本期编程之星)

代码及运行效果:

HTML文件:

<!DOCTYPE.html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>抢月饼活动</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<h1>抢月饼活动</h1>
<div class="button">
<button id="rush">点我抢购</button>
</div>
</body>
<script>
$(function(){
$("#rush").click(function(){
console.info("成功");
});
});
</script>
</html>

效果图:

 

 

JS脚本文件 test.user.js   

setInterval ()函数用于设定每隔指定的时间就执行对应的函数或代码

 

setInterval(function(){
$("#rush").trigger('click')
},1000)

 

 

 

如何在页面中嵌入自己写的Javascript脚本

Chrome: 

1. 打开chrome扩展程序页 – chrome://extensions

2. 将刚才的自定义脚本保存为以user.js为后缀的 .js文件,例如test.user.js,拖入扩展程序页。

3. 重启浏览器。

4. 进入月饼抢购活动页面。此时脚本已自动执行。

 

 

 

 

 

 

FireFox:

1. 下载并安装用户脚本管理插件 greasemonkey (中文翻译成“油猴子”)。

2. 重启浏览器。

3. 将刚才的自定义脚本保存为 .js文件,例如test.user.js,拖入页面空白处。

4. 进入月饼抢购活动页面。此时脚本已自动执行。

 

 

运行效果:

每一秒,控制台都会重复输出一句成功“”。30几秒之后(注意变化):



作品二:来自博客:http://blog.csdn.net/zhyh1435589631/article/details/52999630    (欢迎大家关注~~)


思路

  1. 首先先写一个简单的网页, 这里我们直接写一个记录点击次数然后跳转到牛客网的页面 
    http://www.zhyh2010.cn/nowcoder/program/1/ 
    这里写图片描述
网页相关代码
<!DOCTYPE html> <html> <head>   
  <meta charset="UTF-8">    
 <title>让我们一起抢红包吧</title>    
 <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"> </script>    
 <script>       
  var count = 0;       
  $(document).ready(function(){           
  $("#clickme").click(function(){                
 count++;                 
$("#count").text(count)                
 if (count >= 10)                   
  window.location = "http://www.nowcoder.com"          
   });         
});    
 </script>  </head> <body>    
 <div position="absolute">       
  <div>            
 <img id="clickme" src = "/static/1.jpg" height="400px">        
 </div>        
 <div id="hi">           
  <p position="absolute" left="20px">点我抢红包哟, 已点击<span id = "count">0</span>次,加油</p>        
 </div>    
 </div> </body> </html>


然后只要将点击事件的脚本注入到这个网页中去就好了 


  1. 牛客网上说可以通过安装一个脚本插件来做, 不过我们测试了一下, 发现没有什么效果
  2. 替代方案是采用,F12打开控制台程序, 在console 中输入下面代码

 setInterval(function () {
        $("#clickme").trigger('click')
    }, 1000);

3. 实现

这里写图片描述

作品三:
页面

 <body>
    <h1>抢月饼活动</h1>
    <div class = "button">
         <button id = "rush"> 点我抢购</button>
    </div>
  </body>
  <script type="text/javascript">
      document.getElementById("rush").onclick=function(){
        alert("抢购成功");
      }
  </script>
脚本是
window.setInterval(function(){
  document.getElementById("rush").click();
},1000);

加载到chrome中,页面就可以一直在执行抢购

作品四:

页面:
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>抢月饼</title>
	<script type="text/javascript" 
		src="http://code.jquery.com/jquery-latest.js">
	</script>
</head>
<body>
	<h1>抢月饼</h1>
	<div class="button">
		<button id="rush">点我抢购</button>
	</div>
</body>
<script type="text/javascript">
	$(function() {
		$("#rush").click(function(){
			alert("抢购成功");
		})
	})
</script>
</html>
脚本:
setInterval(function(){
  $("#rush").trigger("click");
},1000);

作品五:

<!--登录页面-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login.do" method="post">
<p>
账号:<input type="text" name="username">
</p>
<p>
密码:<input type="password" name="password">
</p>
<p>
<input type="submit" value="登录">
</p>
</form>
</body>
</html>
//此处为控制器(简单写了一个)
package cn.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MainServlet extends HttpServlet{
private static final long serialVersionUID = -5795314311055119231L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String path = req.getServletPath();
System.out.println(path);
if("/login.do".equals(path)){
login(req,res);
}else if("/toLogin.do".equals(path)){
toLogin(req,res);
}
}
private void toLogin(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
req.getRequestDispatcher("login.html").forward(req, res);
}
private void login(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
System.out.println(req.getParameter("username"));
if("lily".equals(req.getParameter("username"))){
System.out.println("到这里啦");
req.getRequestDispatcher("index.jsp").forward(req,res);
//res.sendRedirect("index.jsp");
}
}
}
<!--由控制器跳转到jsp-->
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>我来刷月饼啦</title>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript">
$(function(){
$("#rush").click(function(){
console.log("抢购成功!");
});
var id = setInterval(function(){
$("#rush").trigger('click');
},1000);
});
</script>
</head>
<body>
<h1>我来刷月饼了</h1>
<p>的人你老姑打发打发</p>
<p>
<input type="button" value="马上抢购" id="rush">
</p>
</body>
</html>
大家可以针对写的代码进行交流,也可以分享出自己的作品~

关于编程之美栏目:http://www.nowcoder.com/discuss/17165 
全部评论

相关推荐

点赞 评论 收藏
分享
贪食滴🐶:你说熟悉扣篮的底层原理,有过隔扣职业球员的实战经验吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务