当前位置:首页 > 建站知识 > 正文内容

全网防转码代码

2024-11-08建站知识9

 小说站防UC浏览器,夸克浏览器转码,百度浏览器转码,各种浏览器,阅读模式、畅读模式,转码解决办法

   看到一个小说站是这样防百度、UC、夸克转码的,他的下一章 href 是空的<a id="next" href="">下一章</a>”。然后利用js的滚动事件修改 href 属性。正常浏览时必然会滚动页面,滚

动页面就触发了修改 hrdf 的事件,对正常浏览是没有任何影响的。(这个站是章节带分页的,百度浏览器转码页显示的全是“第五章(1/3)页、第六章(1/2)页。(2/3)页、(3/3)页无法显示”,百

度好像是从目录页直接转码的。)

   原理:UC或夸克浏览器转码情况下打开页面时会自动进入转码页面,但下滑加载下一章的时候会出现无法加载下一章的提示,这时就会出现返回源页面的提示。

注:能加载下一章就不会有上面的提示,一只在他的转码页面里。

html代码

<!doctype html>
<html>
<head>
  <meta charset="UTF-8">
  <title>各种浏览器转码解决办法</title>
</head>
<body>
  …………
<a id="next" href="">下一章</a>
  <script type="text/javascript">
  //在html页面声明一下几个变量。
  var shortid = "{?$xxx?}", articleid = "{?$xxx?}",   next_chapterid = "{?$xxx?}" , pageNow = "{?$xxx?}" ,  pageAll = "{?$xxx?}";//xxx填写你自己的ID
  </script>
  <script type="text/javascript" src="/js/xxx.js">></script><!-- xxx就是下面的js代码 -->
</body>
</html>
js代码如下:

//下一章的url判断
if (pageNow < pageAll) {//下一页判断
    var person = {
        tid: shortid,
        eid: articleid,
        rid: chapterid,
        Nowid: Number(pageNow) + Number(1),
        Allid: pageAll,
        Namepageid: function() {
            return "/" + this.tid + "/" + this.eid + "/" + this.rid + "_" + this.Nowid + ".html"
        }
    }
} else {
    if (next_chapterid !== "") {//下一章判断
        var person = {
            tid: shortid,
            eid: articleid,
            rid: chapterid,
            nextid: next_chapterid,
            Namepageid: function() {
                return "/" + this.tid + "/" + this.eid + "/" + this.nextid + ".html"
            }
        }
    } else {
        var person = {//没有下一章就回目录
            tid: shortid,
            eid: articleid,
            Namepageid: function() {
                return "/" + this.tid + "/" + this.eid + "_1_1/"
            }
        }
    }
}
//下一章的url判断end


//滚动事件修改 href 属性
var url = person.Namepageid();
if (window.screen.availHeight >= document.body.clientHeight) {//没有滚动条直接修改href 属性
    document.getElementById("next").setAttribute("href", ""+ url)
} else {
    var tur = true;
    function scrollBottomOrTop() {
        var clients = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
        var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
        var wholeHeight = document.documentElement.scrollHeight;
        if (clients + scrollTop >= wholeHeight - 500) {//滚动条距离底部500px时执行修改href 属性
            document.getElementById("next").setAttribute("href", ""+ url)
        }
        if (scrollTop >= 300) {//文章内容向上滚动300px时修改href 属性
            document.getElementById("next").setAttribute("href", ""+ url)
        }
        tur = true
    }
    window.onscroll = function() {//500毫秒只执行一次
        if (tur) {
            setTimeout(scrollBottomOrTop, 500);
            tur = false
        } else {}
    }
}