QQ爹の博客 QQ爹の博客

续instantclick实现的全站无刷新

in 代码相关 文章转载请注明来源!

上次在《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中的

<?php $this->header('); ?>

改成

<?php $this->header('commentReply='); ?>

干掉模板自动输出的评论相关的js代码

然后手动将刚刚屏蔽的代码加入到comments.php里面

<script type="text/javascript">  
(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;
        }
    };
})();
</script>
jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

pjaxinstantclickajax无刷新
发表新评论
已有 20 条评论
  1. 纪录博客
    纪录博客 7Chrome 62
    回复

    你这个播放器好酷,我打包放我我网站。

  2. mr.tcsy
    mr.tcsy 10Chrome 55
    回复

    你这广告真是醉了、管家和360都直接给你报红了。。。。老铁 我看错你了

    1. Jrotty
      Jrotty本文作者 OUC浏览器 11
      回复

      @mr.tcsy 老铁,我很久不用360了,你不说我都不知道

  3. Stephen
    StephenChrome 61
    回复

    你这广告拉的这么长很影响内容,泽泽喂

    1. Jrotty
      Jrotty本文作者 10Chrome 62
      回复

      @Stephen 截图能否发给我看看,我这看着感觉还行啊

      1. Meekdai
        Meekdai 10Chrome 61
        回复

        @Jrotty QQ云商城~

  4. 月宅
    月宅 10UC浏览器 6
    回复

    这种垃圾广告你也接?拉低博客质量...

    1. Jrotty
      Jrotty本文作者 10Chrome 62
      回复

      @月宅 我想接月宅这样的高质量广告但是没有人给我啊

  5. 尚寂新
    尚寂新 LChrome 44
    回复

    关于instantclick进度条的美化 不知dalao有没有什么方案(就像友人C的那种 )

    1. Jrotty
      Jrotty本文作者 10Chrome 62
      回复

      @尚寂新 有看到过,我这现在打不开哈,地址https://sa.bi/176.sb

  6. 王小大
    王小大 10Chrome 61
    回复

    哇,你接到广告了!!!

前篇 后篇
雷姆
拉姆