杰奇2.4以上版本,重写加入删除书架js方法

本文阅读 2 分钟
广告

在开发杰奇2.4以上模板的时候就会发现,原本加入书架啊,打赏啊,推荐之类的路径,全都由以前版本的get请求,变为了post,所以很多之前的js,或者直接访问来进行请求的方式,就完全行不通了。然后官方自带的js又特别复杂,有时候按照它的规则来调用还会莫名其妙的报错,于是如果能重写一个js,那模板开发的时候也会轻松些,不必要强行去适应官方的规则(有很多时候根本适应不来)。
就这样,我折腾一番,把加入书架,从书架删除这两个功能,用js重写了一遍,其它的包括打赏,推荐什么的,也是相同的原理,也就不补充了。

1.加入书架接口

function addBookCase(bid,cid){
    $.post("/modules/article/addbookcase.php",
        {bid: bid,cid:cid},
        function(data){
            var $wrapper = $(data);
            var tips = $wrapper.find(".blockcontent").text();
            tips = tips.replace(/[\r\n]/g,"");
            tips = tips.replace(/[ ]/g,"");
            tips = tips.replace(/\ +/g,"");
            tips = tips.replace(/[\'\"\\\/\b\f\n\r\t]/g, '');
            tips = tips.replace(/[\@\#\$\%\^\&\*\(\)\{\}\:\"\L\<\>\?\[\]]/);
            tips = tips.replace("错误原因:","");
            tips = tips.replace("请返回并修正","");
            if(tips==""){
                alert("请登录后进行操作!");
            }else{
                alert(tips);
            }
            
        }
    );
}

前台使用方式:

//书籍信息页
<a href="javascript:;" onclick="addBookCase('{?$articleid?}',0)">加入书架</a>
//章节阅读页
<a href="javascript:;" onclick="addBookCase('{?$articleid|intval?}',{?$chapterid|intval?})">加入书签</a>

2.书架删除接口

function deleteBookCase(bid,act,token){
    token= token.replace("&jieqi_token=","");
    
    $.post("/modules/article/bookcase.php",
        {bid: bid,act:act,jieqi_token:token},
        function(data){
            var $wrapper = $(data);
            var tips = $wrapper.find(".blockcontent").text();
            tips = tips.replace(/[\r\n]/g,"");
            tips = tips.replace(/[ ]/g,"");
            tips = tips.replace(/\ +/g,"");
            tips = tips.replace(/[\'\"\\\/\b\f\n\r\t]/g, '');
            tips = tips.replace(/[\@\#\$\%\^\&\*\(\)\{\}\:\"\L\<\>\?\[\]]/);
            tips = tips.replace("错误原因:","");
            tips = tips.replace("请返回并修正","");
            location.reload();
        }
    );
}

前台(书架页面)使用方式:

<a href="javascript:;" onclick="deleteBookCase('{?$bookcaserows[i].caseid?}','delete','{?$jieqi_token_url?}')">删除</a>

总之,确实很实用了。
timg.jpg

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/1967/
杰奇cms官方版实现笔趣阁手机端分页样式
« 上一篇 05-17
PHPstudy创建typecho步骤
下一篇 » 06-10
广告

发表评论

V注册会员 L评论等级
R9 条回复
  1. 引风行Lv.3 说道:
    2020-12-24     Win 7 /    Chrome

    我想给信息也封面图片加上连载,完结的小图标,这个标签好像不管用了,不知道怎么整。又不会js,

  2. 引风行Lv.3 说道:
    2020-12-24     Win 7 /    Chrome

    大哥求教个问题,杰奇自带的判断标签{?if $fullflag == 0?}在2.4版本中好像失效了,有办法解决吗。

    1. 不暇VLv.6 说道:
      2020-12-24     Win 7 /    Chrome

      @引风行

      2.4版本的fullflag直接输出“连载”和“完结”而不是0和1

      1. 引风行Lv.3 说道:
        2020-12-24     Win 7 /    Chrome

        @不暇

        谢谢大神,已解决。弄了半天了,终于解决了。
        一开始我试过一次“== 完本” 这种格式可是不知道为什么浏览器报错打不开了,我以为不能用呢。看来可能是我代码不知道哪里写错了,瞎耽误功夫了。 再次感谢大哥帮忙。

  3. 醉春风VLv.3 说道:
    2020-12-16     Win 7 /    Chrome

    tyuik

  4. 醉春风VLv.3 说道:
    2020-12-16     Win 7 /    Chrome

    谢谢大哥分享,已添加。可是还有一点小问题,提示总是不正确,加入书架提示乱码,重复添加书架提示;请登录后进行操作!。,可是已经登录了不是应该提示;已添加吗

    1. 不暇VLv.6 说道:
      2020-12-16     Win 7 /    Chrome

      @醉春风

      然后,读取出来的字符也取决于错误和提示页面的代码,你可能要根据实际情况进行调整

    2. 不暇VLv.6 说道:
      2020-12-16     Win 7 /    Chrome

      @醉春风

      这段js是强行读取请求地址,把里面的文字筛选出来,乱码可能是因为js请求出来的字符是utf-8但是杰奇默认是gbk。后面的提示语句我就不清楚了

  5. 蓝大富VLv.2 说道:
    2020-05-17     Win 10 /    Chrome

    那就简单多了,不然自己搞不好。

    我是一只来水评论的猪,哈哈哈哈

没有更多评论了

作者信息

热门文章

标签TAG

热评文章