在开发杰奇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/