目的

用键盘替代鼠标,做一个安静刷知乎的美男(女)子!

功能

 
功能 按键 说明
直接定位到搜索框 q  
打开 首页 w  
打开 话题 e  
打开 发现 r  
打开 消息 m  
打开 个人主页 u  
打开 我的草稿 c  
打开 我的收藏 s  
打开 关注的问题 g  
打开 邀请我回答的问题 y  
打开当前可见范围内的第一个问题 回车 仅针对<首页>下的<最新动态>
自动加载 更多 空格或者↓ 仅针对页面加载方式为滚动加载时
上一页or下一页 ←  or → 仅针对页面加载方式为翻页加载
忘记这些快捷键时,直接敲击 h 键,会弹出帮助信息。

实现代码

只介绍关键的两个:

1)自动加载更多

说明:当刷最新动态时,在不断滚动的过程中,底部会出现‘更多’按钮,每次都需要用鼠标点击一下

思路:当每次滚动至底部时,自动触发‘更多’按钮的点击事件。

实现代码

if(e.keyCode==40||e.keyCode==32){
//下箭头 || 空格
var scrollTop = $(window).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(window).height();
if(scrollTop + windowHeight == scrollHeight){      
document.getElementById('zh-load-more').click();
}
}

2)打开当前可见范围内的第一个问题

说明:刷最新动态时,看到感兴趣的问题,每次都需要手动点击一下,能不能直接敲击回车,一键打开这个问题呢?答案是肯定的。

思路:通过分析html源码,得知每个问题都是一个固定高度的div。所以可以通过得到当前滚动条的Y坐标,除以div的高度,就可以得到目标。

  实现代码

if(e.keyCode==13) {
//回车:直接打开最接近顶部的那条问题
//每条问题的height==219
var y= GetPageScroll().Y; //滚动条的位置
var index =parseInt(parseInt(y)/220); //当前的div
var title= $('#js-home-feed-list div.feed-item').eq(index).find('h2').html();
var a_href = $('#js-home-feed-list div.feed-item').eq(index).find('h2').find('a').attr('href');
window.open('https://www.zhihu.com'+a_href);
} function GetPageScroll()
{
var x, y;
if(window.pageYOffset){
// all except IE
y = window.pageYOffset;
x = window.pageXOffset;
}
else if(document.documentElement && document.documentElement.scrollTop){
// IE 6 Strict
y = document.documentElement.scrollTop;
x = document.documentElement.scrollLeft;
}
else if(document.body) {
// all other IE
y = document.body.scrollTop;
x = document.body.scrollLeft;
}
return {X:x, Y:y};
}

完整代码:=请点击我=

V1.0只是简单实现了上一页、下一页功能,详情请点击我!

【鬼脸原创】谷歌扩展--知乎V2.0的更多相关文章

  1. 带你全面认识CMMI V2.0(一)

    新发布的CMMI V2.0在方法论和方法上都提出了一些战略上的变化和改进.这些更新提供了新的要求.历史标准的演进以及以往实践的延续. CMMI V2.0和CMMI V1.3的变化 CMMIV2.0的定 ...

  2. 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞

      文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...

  3. 运维工程师打怪升级进阶之路 V2.0

    在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...

  4. BurpSuite pro v2.0 使用入门教程

    BurpSuite简介 BurpSuite是进行Web应用安全测试集成平台.它将各种安全工具无缝地融合在一起,以支持整个测试过程中,从最初的映射和应用程序的攻击面分析,到发现和利用安全漏洞.Burps ...

  5. POLARDB v2.0 技术解读

    点击观看“POLARDB 2.0 升级发布会”:https://yq.aliyun.com/live/1136 回顾POLARDB 1.0 POLARDB 1.0 主要的改进包括采用了计算存储分离的架 ...

  6. [Android]Android端ORM框架——RapidORM(v2.0)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...

  7. 怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

     因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我个人认为,好记性不如多做笔记多反思总结. 1.    前提条件 开发环境已正确配置 工程已解决JUnit依赖关系(pom ...

  8. Heatmap.js v2.0 – 最强大的 Web 动态热图

    Heatmap 是用来呈现一定区域内的统计度量,最常见的网站访问热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示.Heatmap.js 这个 JavaScript 库可以实现 ...

  9. 数据获取以及处理系统 --- 功能规格说明书V2.0

    产品规格说明书: 版本号: V2.0 版本说明: Version 1.0 简单得需求分析以及构思,初稿形成 Version 2.0 细化beta阶段设计,增加典型用户尝尽以及功能罗列 1. 引言 1. ...

随机推荐

  1. (转)log4j(六)——log4j.properties试过过程详解

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 参考:https://www.cnblogs.com/ywlaker/p/6124067.html log4j基本用法 首 ...

  2. 团体程序设计天梯赛 L1-006. 连续因子

    Two ways: 1.接近O(n) #include <stdio.h> #include <stdlib.h> #include <math.h> int ma ...

  3. C++模版详解(-)

    C++模版:       模版时C++支持多参数多态的工具,使用模版可以为用户为类或函数声明一般模式,使得类的数据成员,或者成员函数的参数,返回值取得任意类型. 模版是一种对类型进行参数化的工具: 通 ...

  4. redis 新开端口号

    2012 ps aux | grep redis 2013 cd /usr/local/redis/ 2014 ls 2015 cd etc/ 2016 ls 2017 cp redis.conf r ...

  5. insert tp5.1

    $insertId = Db::name('user_address')->insertGetId($data); 会插入数据,返回插入的 id //$flag = Db::name('user ...

  6. STL中的优先级队列priority_queue

    priority_queue(queue类似)完全以底部容器为根据,再加上二叉堆(大根堆或者小根堆)的实现原理,所以其实现非常简单,缺省情况下priority_queue以vector作为底部容器.另 ...

  7. clock()、time()、clock_gettime()和gettimeofday()函数的用法和区别

    1. clock_gettime( ) 提供了纳秒的精确度 int clock_gettime(clockid_t clk_id, struct timespect *tp); clockid_t c ...

  8. PHP基础知识之————匿名函数(Anonymous functions)

    匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值.当然,也有其它应用的情况. ...

  9. Mockserver -MOCO的使用

    转自: http://blog.csdn.net/shensky711/article/details/52770686

  10. Redis实战(二)CentOS 7上Redis两种方式持久化

    Redis的持久化之RDB RDB方式是通过快照完成的,当符合一定条件时Redis会自动将内存中的所有数据进行快照并且存储到硬盘上. 进行快照的条件在配置文件中指定,有2个参数构成:时间和改动的键的个 ...