日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

微信阅读. 电脑版. 标记上一页阅读到的位置. 油猴(Tampermonkey)插件

發(fā)布時間:2023/12/13 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 微信阅读. 电脑版. 标记上一页阅读到的位置. 油猴(Tampermonkey)插件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

最近喜歡用微信讀書.電腦版進行看書,
可以豎屏的那種,一頁可以顯示好多內(nèi)容,
讀起來感覺很好哈,
并且感覺讀起來都快了很多.
手機或者Kindle翻了好幾頁才能讀完的,
我使用微信電腦版,豎屏翻個三五下完事...

但是也遇上一件事,畢竟一頁顯示的行數(shù)比較多,
每次翻頁完,第一件事先找從哪行開始讀...
體驗就差點意思了.

這個時候想起了油猴,自己可以寫一個插件搞一下嘛...

分析微信讀書html源碼

當時是正在看<天才在左瘋子在右>,
瀏覽器F12,查看html源碼,

我本來以為是一些文本之類的...
想的直接將此頁的最后一行文本,
用黃色或者紅色標記出來.

結(jié)果發(fā)現(xiàn)是類似下面這樣的...↓

<div class="wr_canvasContainer">

<canvas width="800" height="3989">
</canvas>
<canvas width="800" height="2141">
</canvas>

</div>

兩個canvas元素.
可能是為了爬取文本內(nèi)容搞得一些東西.
文本標顏色的計劃出師未捷身先死...
想著在這個canvas上做文章吧...

初版.canvas.涂鴉之旅

先要找到本頁的最后一行的高度是多少...
本來以為這個高度估計還需要一番計算.
搜索了瀏覽器的各種高度...
并且涉及到滾動條...
最后終于找到一個屬性↓

//返回文檔在窗口垂直方向滾動的像素
window.pageYOffset

有了這個高度,就很好搞了.
開始在畫布上涂鴉...

// ==UserScript==
// @name         微信閱讀.翻頁.標記上一頁讀的位置
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://weread.qq.com/web/reader/*
// @grant        none
// @require      http://libs.baidu.com/jquery/2.1.4/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';
    $(document).keydown(function(event){
    if(event.keyCode == 34){
      MarkLine();
    }
  });
    // Your code here...
    function MarkLine(){

        var yHeight = window.pageYOffset + document.body.clientHeight - 200;
        console.log("當前window.pageYOffset..." + window.pageYOffset);
        console.log("當前document.body.clientHeight..." + document.body.clientHeight);

        var dIndex = 0;
        if(yHeight > 3967){
            dIndex = 1;
            yHeight -= 3995;
        }
        var c=document.getElementsByTagName("canvas")[dIndex];

        var ctx=c.getContext("2d");

        // 創(chuàng)建漸變
        var grd=ctx.createLinearGradient(0,0,200,0);
        grd.addColorStop(0,"red");
        grd.addColorStop(1,"white");
        // 填充漸變
        ctx.fillStyle=grd;
        ctx.fillRect(600,yHeight,300,1);
    }
})();

局限性
后來打開<劍來>看了一章,發(fā)現(xiàn)了問題.
剛開始的幾頁確實標記了,但是往后就不會再標記...
打開F12瞅了下,發(fā)現(xiàn)了問題所在:
一章節(jié)如果文本太多的話,前幾頁確實還是在畫布上,
但是后面的就是一些打亂的文本了.

總結(jié)就是↓
適合那種一章節(jié)文本不是很多,
高度不是很高(大概高度不超過6160的書籍)
比如,<天才在左瘋子在右>
如果看<劍來>這樣一章節(jié)萬八千字的,
這種也就適合前兩頁翻頁...

改進.html.涂鴉

后來就想了下,剛開始被canvas牽著鼻子走了,
因為文本是在畫布上,就想著在canvas上下功夫,
但是canvas終究是html代碼中的...
直接在html中修改不是更好嗎?

想到是搞一個div,然后顯示為一個橫線,主要改style,
來讓這個橫線顯示在想出現(xiàn)的位置...

<div id="mkDiv"></div>
// ==UserScript==
// @name         微信閱讀.翻頁.記錄上一頁閱讀位置
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://weread.qq.com/web/reader/*
// @grant        none
// @require      http://libs.baidu.com/jquery/2.1.4/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';
    //新建一個div,用于顯示為一條線
    var newDiv = document.createElement("div");
    newDiv.style="position:absolute;border: 1px solid red;left:1200px;top:26386px;200px;";
    newDiv.id="mkLineDiv"
    document.body.appendChild(newDiv);

    $(document).keydown(function(event){
        //翻頁按鍵.Page Down
        if(event.keyCode == 34){
            MarkLine();
        }
    });
    // 標記上一頁閱讀
    function MarkLine(){
        var htmlHeight = window.pageYOffset + document.body.clientHeight - 40;
        var tempStyle="position:absolute;border: 1px solid red;left:1200px;top:"+(htmlHeight)+"px;200px;";
        console.log(tempStyle);
        $("#mkLineDiv").attr("style",tempStyle);
    }
})();

結(jié)尾

其實,關于翻頁還需要標記上一頁讀的位置,
有人可能覺得多此一舉,
每次翻頁后,接著從這一頁的最上面讀就是了唄...
我根據(jù)自己的體驗,總結(jié)了2點我覺得需要更改的.

1. 如果這一章節(jié),有2.5頁,
微信讀書電腦版,當你翻到最后一頁的時候,
最后一頁不是顯示2.0頁~2.5頁的內(nèi)容,
而是顯示1.5頁~2.5頁的內(nèi)容.

2. 例如,30行為一頁的內(nèi)容,一章節(jié)一共2頁,
我翻到第二頁的時候,直接顯示31行,
我總是感覺30行與31行之間還有內(nèi)容是未讀的...
總是在按一下"↑"往上翻一行確認下....

總之,個人習慣,因人而異.

最后上一張,標記后的章節(jié)...(√,你沒看錯,就是那一個紅色的橫線...)

總結(jié)

以上是生活随笔為你收集整理的微信阅读. 电脑版. 标记上一页阅读到的位置. 油猴(Tampermonkey)插件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。