在开发杰奇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>
总之,确实很实用了。
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/1967/
我想给信息也封面图片加上连载,完结的小图标,这个标签好像不管用了,不知道怎么整。又不会js,
大哥求教个问题,杰奇自带的判断标签{?if $fullflag == 0?}在2.4版本中好像失效了,有办法解决吗。
@引风行
2.4版本的fullflag直接输出“连载”和“完结”而不是0和1
@不暇
谢谢大神,已解决。弄了半天了,终于解决了。
一开始我试过一次“== 完本” 这种格式可是不知道为什么浏览器报错打不开了,我以为不能用呢。看来可能是我代码不知道哪里写错了,瞎耽误功夫了。 再次感谢大哥帮忙。
tyuik
谢谢大哥分享,已添加。可是还有一点小问题,提示总是不正确,加入书架提示乱码,重复添加书架提示;请登录后进行操作!。,可是已经登录了不是应该提示;已添加吗
@醉春风
然后,读取出来的字符也取决于错误和提示页面的代码,你可能要根据实际情况进行调整
@醉春风
这段js是强行读取请求地址,把里面的文字筛选出来,乱码可能是因为js请求出来的字符是utf-8但是杰奇默认是gbk。后面的提示语句我就不清楚了
那就简单多了,不然自己搞不好。
我是一只来水评论的猪,哈哈哈哈