首页 » 建站手册 » Typecho Smilies插件Pjax重载函数

Typecho Smilies插件Pjax重载函数

谷歌已收录,更新于2019年01月25日; 如遇到问题,请留言及时通知站长; 欢迎加入 三生三世,讨论各种问题!

说明

Typecho主题Initial不带表情功能,我们可以通过一个插件给主题添加表情功能,插件名为Smilies。不过,在使用过程发现如果先进入首页再访问文章页面,就无法点击表情了。这当然是因为主题的pjax导致,所以需要重载下Smilies

Smilies插件

点击下载Smilies插件,上传到插件目录,重命名为Smilies。然后,在需要显示表情的地方,输入如下代码即可调用。

<?php $comments->smilies(); ?>

然后,当你先进入网站首页,刷新页面,再进入文章页面,发现表情无法点击,那么这时你就需要pjax重载script了。

Typecho Smilies插件Pjax重载函数
Typecho Smilies插件Pjax重载函数

Pjax重载

如果你的主题有pjax功能,并且你启用了pjax,请务必在footer.php中添加如下代码。

<script type="text/javascript">
$(document).on('pjax:complete', function() {
Smilies = {
    domId: function(id) {
        return document.getElementById(id);
    },
    domTag: function(id) {
        return document.getElementsByTagName(id)[0];
    },
    showBox: function() {
        this.domId("smiliesbox").style.display = "block";
        document.onclick = function() {
            Smilies.closeBox();
        }
    },
    closeBox: function() {
        this.domId("smiliesbox").style.display = "none";
    },
    grin: function(tag) {
        tag = ' ' + tag + ' ';
        myField = this.domTag("textarea");
        document.selection ? (myField.focus(), sel = document.selection.createRange(), sel.text = tag, myField.focus()) : this.insertTag(tag);
    },
    insertTag: function(tag) {
        myField = Smilies.domTag("textarea");
        myField.selectionStart || myField.selectionStart == "0" ? (startPos = myField.selectionStart, endPos = myField.selectionEnd, cursorPos = startPos, myField.value = myField.value.substring(0, startPos) + tag + myField.value.substring(endPos, myField.value.length), cursorPos += tag.length, myField.focus(), myField.selectionStart = cursorPos, myField.selectionEnd = cursorPos) : (myField.value += tag, myField.focus());
    }
};
});
</script>

后续说明

如果你在使用过程中,还有其他问题,请留言评论,感谢支持!

一个只会魔改主题,而不会制作主题的站长,专业扒各种网站的各种样式。希望每一位来到这里的访客,都能拿到你们需要的资源!

发表评论

已有 6 条评论

  1. 青鱼 青鱼说道:

    你这模板还咋也黑不溜秋的,哈哈!话说你的服务器真的卡!

    1. 枂下 枂下说道:

      应该是晚上自动黑夜模式了,白天就好了 :shock:

      1. FlyingSky FlyingSky说道:

        黑夜模式吗?你可以看看 https://blog.fsky7.com/archives/46/#cl-4 在 22 点之后 6 点之前是自动切换到 Dark mode 的,不需要的话可以将这段代码删掉,或者自己改个时间段。

        1. 枂下 枂下说道:

          今天刚回家,晚点看看改下js

  2. BigCoke BigCoke说道:

    沙发!!!Again

    1. 枂下 枂下说道:

      好,没人跟你抢 :???:

返回主页看更多
赏杯咖啡给站长 支付宝 扫一扫