【网站技术解析⑦】-- 弹窗验证码深度解读

btn.click(function () {
  var param = {"msg_input": $(".msg_input").val()};
  console.log(param);
  $.post('/find/', param, function (data) {
    var train_data = data.data;
    var sign = data.sign;
    var img_num = data.img_num;
    var user_ip= data.user_ip;
    var link_sign = data.link_sign;
    sessionStorage.setItem('link_sign', link_sign);
    sessionStorage.setItem('img_num', img_num);
    if(sign=="right") {
      $('#table_id_example').DataTable({
        searching: false,
        bLengthChange: false,
        "sInfo": "从 _START_ 到 _END_ /共_TOTAL_条数据",
      "bSort": false, //排序功能
       "bInfo": true,//页脚信息
       "language": {
       "info": "", //表格左下角显示的文字
        "paginate": {
        "previous": "上一页",
        "next": "下一页"
      }
    },
    destroy: true, // 去掉重新加载数据的弹窗问题
   "data": train_data,
   "columns": [
     {data: 'name'},
     {
       data: 'url',
       render: function (data, type, row, meta) {
          return '<a onclick="userInfo(\'' + meta.row + '\')">' + data + '</a>';
// return '<a class =' + meta.row + '>'+ data +'</a>';
      }
      },
   ]
});
}else if(sign=="error"){
  img_url = "/static/img/modal_img_" + img_num +".jpg";
  $(".qr_code").attr("src",img_url);
  $('.grayDiv,.loginDiv').stop().fadeIn();
}


先来一坨代码,哈哈,估计能把你看懵逼


param:输入框的输入值,需要传到后端

$.post('/find/'):后端是find视图

click_sign:(right/error),不过这个参数跟上一节的book_click_sign有重复,其实最早是这样的

如果是right:则出现表格,表格是前端datatable框架,具体用法和配置可以看后面文章介绍

如果是error:则出现弹窗

render:可以加一些自定义函数,比如表格返回的每个链接,都加了一个函数叫做userInfo,为点击网盘链接绑定的事件,接下来看看userInfo做了哪些事


every:根据datatable语法获取的表格每行的数据

new_url:每行的链接

click_num:ip点击网盘链接的次数,初始值为0,每点一个网盘链接都要加1,用来记录次数,如果超过3次则出现弹窗,当然我这里加的有组合判断条件,可以不用去理解,下面代码你只用关注click_num即可

click_num<=3:打开网盘链接

click_num>3:出现弹窗

img_num:可能会有多个二维码,随机出现,就设置了一个这样的变量,跟二维码图片路径做拼接

var click_num = 0;
function userInfo(rowIndex){
   every = $('#table_id_example').DataTable().rows().data()[rowIndex];
   new_url = every["href"];
   click_num += 1;
    // 判断用户是否扫码
   var img_num = sessionStorage.getItem("img_num");
   var link_sign = sessionStorage.getItem("link_sign");
   if(link_sign=="true" || click_num<=3){
      window.open(every["href"],"_blank")
   }else if(link_sign=="false" && click_num>3){
      img_url = "/static/img/modal_img_" + img_num +".jpg";
      $(".loginDiv .qr_code").attr("src",img_url);
      $('.grayDiv,.loginDiv').stop().fadeIn();
}
}


对于find视图代码,基本跟上一节book_click_sign视图一样,主要还是为了返回一个sign信号


点击领取视频按钮的道理跟最近这两篇基本类似,还是判断sign标志即可


python爬虫人工智能大数据公众号

640?wx_fmt=gif

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值