【鬼脸原创】谷歌扩展--知乎V2.0
目的:
用键盘替代鼠标,做一个安静刷知乎的美男(女)子!
功能:
| 功能 | 按键 | 说明 |
| 直接定位到搜索框 | 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的更多相关文章
- 带你全面认识CMMI V2.0(一)
新发布的CMMI V2.0在方法论和方法上都提出了一些战略上的变化和改进.这些更新提供了新的要求.历史标准的演进以及以往实践的延续. CMMI V2.0和CMMI V1.3的变化 CMMIV2.0的定 ...
- 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞
文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...
- 运维工程师打怪升级进阶之路 V2.0
在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...
- BurpSuite pro v2.0 使用入门教程
BurpSuite简介 BurpSuite是进行Web应用安全测试集成平台.它将各种安全工具无缝地融合在一起,以支持整个测试过程中,从最初的映射和应用程序的攻击面分析,到发现和利用安全漏洞.Burps ...
- POLARDB v2.0 技术解读
点击观看“POLARDB 2.0 升级发布会”:https://yq.aliyun.com/live/1136 回顾POLARDB 1.0 POLARDB 1.0 主要的改进包括采用了计算存储分离的架 ...
- [Android]Android端ORM框架——RapidORM(v2.0)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...
- 怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块
因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我个人认为,好记性不如多做笔记多反思总结. 1. 前提条件 开发环境已正确配置 工程已解决JUnit依赖关系(pom ...
- Heatmap.js v2.0 – 最强大的 Web 动态热图
Heatmap 是用来呈现一定区域内的统计度量,最常见的网站访问热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示.Heatmap.js 这个 JavaScript 库可以实现 ...
- 数据获取以及处理系统 --- 功能规格说明书V2.0
产品规格说明书: 版本号: V2.0 版本说明: Version 1.0 简单得需求分析以及构思,初稿形成 Version 2.0 细化beta阶段设计,增加典型用户尝尽以及功能罗列 1. 引言 1. ...
随机推荐
- 遇到问题----linux-----linux 打开文件数 too many open files 解决方法
在运行某些命令或者 tomcat等服务器持续运行 一段时间后可能遇到 too many open files. 出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值. 查看每个用 ...
- React事件传递参数
<button onClick={(ev) => {this.handleClick(ev,arg1,arg2,...)}} 用箭头函数,注意第一个参数一定要是事件参数.
- 【bzoj4264】小C找朋友
题解 $a$和$b$是好*友说明除了这两个人以外的邻接集合相同: 做两次$hash$,分别都处理和$a$相邻的点排序$hash$,①$a$要算进$a$的相邻集合,②$a$不算进: 当两个人不是好*友, ...
- Cannot enlarge string buffer containing XX bytes by XX more bytes
在ELK的数据库报警系统中,发现有台机器报出了下面的错误: 2018-12-04 18:55:26.842 CST,"XXX","XXX",21106,&quo ...
- springcloud之Hystrix
1.Hystrix出现的背景 从上面看来,Hystrix避免了雪崩效益,对于失败的服务可以快速失败. 2.为了解决雪崩效应的解决方案: (1)超时机制 (2)断路器模式Hystrix 3.Hystri ...
- Leetcode 503. 下一个更大元素 II
1.题目描述 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应 ...
- Docker部署Tomcat实例
1.使用Docker部署Tomcat服务 http://www.open-open.com/lib/view/open1455717671698.html 2.搭建docker私有仓库 http:// ...
- Go_18: Golang 中三种读取文件发放性能对比
Golang 中读取文件大概有三种方法,分别为: 1. 通过原生态 io 包中的 read 方法进行读取 2. 通过 io/ioutil 包提供的 read 方法进行读取 3. 通过 bufio 包提 ...
- Tomcat权威指南-读书摘要系列3
3. 在Tomcat中部署Servlet与JSP Web应用程序 jar命令打包war文件 jar cvf examples.war .
- socket利用多线程实现一对多通信
1.服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接.将accept()写入死循环,每次连接一个客户端,开一个线程. 2.一般情况下建立s ...