zblog php ajax,zblog php使用Ajax之后 自带代码高亮插件Prism失效的临时解决方法

Prism.js 是一个非常不错的用于处理网页中代码块的JavaScript库。然而,Prism.js嵌入zblog php之后,在使用了整站Ajax或者Pjax之后,自带的代码高亮插件Prism失效了,代码并没有实现高亮。需要再回调一次,强制Prism再次在当前页面运行,实现代码高亮效果。代码如下,(仅限于Zblog php)。具体是否有问题还有待测试。。。表面看上去是成功了的。$(function () {

var compatibility = {

as3: "actionscript",

"c#": "csharp",

delphi: "pascal",

html: "markup",

xml: "markup",

vb: "basic",

js: "javascript",

plain: "markdown",

pl: "perl",

ps: "powershell"

};

var runFunction = function (doms, callback) {

doms.each(function (index, unwrappedDom) {

var dom = $(unwrappedDom);

var codeDom = $("");

if (callback) callback(dom);

var languageClass = "prism-language-" + function (classObject) {

if (classObject === null) return "markdown";

var className = classObject[1];

return compatibility[className] ? compatibility[className] : className

}(dom.attr("class").match(/prism-language-([0-9a-zA-Z]+)/));

codeDom.html(dom.html()).addClass("prism-line-numbers").addClass(languageClass);

dom.html("").addClass(languageClass).append(codeDom)

})

};

runFunction($("pre.prism-highlight"));

runFunction($('pre[class*="brush:"]'), function (preDom) {

var original;

if ((original = preDom.attr("class").match(/brush:([a-zA-Z0-9\#]+);/)) !== null) {

preDom.get(0).className = "prism-highlight prism-language-" + original[1]

}

});

Prism.highlightAll()

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值