续instantclick实现的全站无刷新
实现 刷新 全站 instantclick
2023-06-13 09:18:41 时间
上次在《instantclick 实现的全站无刷新》中大致说了一下实现方式,但是随着大家对文章的关注,我发现有些细节被我遗漏了,同时也发现了存在的问题,下面就接着上篇文章在说一说。
搜索功能这样的非超链接怎么实现不刷新 上篇文章的代码不兼容火狐浏览器,所以将上篇文章中提到的这个代码
$.extend({
getKey: function() {
if(event.keyCode==13){
$('#soux').get(0).click();
}
},
})
改为
$.extend({
getKey: function() {
var theEvent = window.event || arguments.callee.caller.arguments[0];
var code = theEvent.keyCode;
if(code == 13){
$('#soux').get(0).click();
}
},
})
instantclick的情况添加ajax评论 需要将typecho的模板header.php中的
header('); ?>
改成
header('commentReply='); ?>
干掉模板自动输出的评论相关的js代码
然后手动将刚刚屏蔽的代码加入到comments.php里面
(function () {
window.TypechoComment = {
dom : function (id) {
return document.getElementById(id);
},
create : function (tag, attr) {
var el = document.createElement(tag);
for (var key in attr) {
el.setAttribute(key, attr[key]);
}
return el;
},
reply : function (cid, coid) {
var comment = this.dom(cid), parent = comment.parentNode,
response = this.dom('<?php echo $this->respondId(); ?>'),
input = this.dom('comment-parent'),
form = 'form' == response.tagName ? response : response.getElementsByTagName('form')[0],
textarea = response.getElementsByTagName('textarea')[0];
if (null == input) {
input = this.create('input', {
'type' : 'hidden',
'name' : 'parent',
'id' : 'comment-parent'
});
form.appendChild(input);
}
input.setAttribute('value', coid);
if (null == this.dom('comment-form-place-holder')) {
var holder = this.create('div', {
'id' : 'comment-form-place-holder'
});
response.parentNode.insertBefore(holder, response);
}
comment.appendChild(response);
this.dom('cancel-comment-reply-link').style.display = '';
if (null != textarea && 'text' == textarea.name) {
textarea.focus();
}
return false;
},
cancelReply : function () {
var response = this.dom('<?php echo $this->respondId(); ?>'),
holder = this.dom('comment-form-place-holder'),
input = this.dom('comment-parent');
if (null != input) {
input.parentNode.removeChild(input);
}
if (null == holder) {
return true;
}
this.dom('cancel-comment-reply-link').style.display = 'none';
holder.parentNode.insertBefore(response, holder);
return false;
}
};
})();
相关文章
- rownumber实现分页的方法
- 用Redis实现购物车增删改与清空(基础)
- 【说站】javascript寄生式组合继承如何实现
- python图层合并_Photoshop_【批量将同一背景与不同的上层合并图层的技巧】导出+Python3.X实现…[通俗易懂]
- 三子棋小游戏————如何用C语言实现(含完整代码)
- SpringBoot 实现万能文件在线预览,已开源,真香!!
- Spring Cloud Bus集成Spring Cloud Config Server实现全局配置的自动刷新(二)
- MongoDB实现数据去重的方法(mongodb去重)
- 使用Oracle,实现OCFS2文件系统的数据存储(oracleocfs2)
- Linux国际化:实现无障碍的跨国使用(linuxi18n)
- 如何实现实时刷新Redis缓存数据(如何实时刷redis缓存)
- PHP计划任务、定时执行任务的实现代码
- 利用ajaxfileupload插件实现文件上传无刷新的具体方法
- android多点触摸图片缩放的具体实现方法
- .net连接oracle的3种实现方法
- jquery用get实现ajax在ie里面刷新不进入后台解决方法
- 通过pjax实现无刷新翻页(兼容新版jquery)
- php实现cc攻击防御和防止快速刷新页面示例
- android开发教程之实现listview下拉刷新和上拉刷新效果
- JS实现距离上次刷新已过多少秒示例
- ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
- js通过cookie实现刷新不变化树形菜单
- jQuery不使用插件及swf实现无刷新文件上传
- JavaScript中判断页面关闭、页面刷新的实现代码