Highlight.js 引入正确, js 与 css 均已起作用,但是高亮不亮,求教~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alay9999
V2EX    问与答

Highlight.js 引入正确, js 与 css 均已起作用,但是高亮不亮,求教~

  •  
  •   alay9999 2015-04-27 22:58:27 +08:00 8605 次点击
    这是一个创建于 3822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    测试浏览器

    Chrome ,反正官方案例和其他用此方案的网站均正常显示。

    文件结构:

    Github (Highlite.js)下载之后只保留 src
    文件夹,目测是网页必须的文件。内有

    • languages 文件夹
    • styles 文件夹
    • highlight.js 文件

    ##代码:##

    代码我已经精简到可以放在官方做案例了……因为就是照抄下来加上必要结构而已。

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link href="src/styles/default.css" rel="stylesheet"> <script src="src/highlight.js"></script> <script>hljs.initHighlightingOnLoad();</script> </head> <body> <pre><code class="Javascript">alert ("123");</code></pre> </body> </html> 

    运行结果:

    个人猜测:

    引入的 js 已起作用,因为添加了 hljs 的类;

    引入的 css 已起作用,因为 hljs 的类有了相应的样式;

    那么是 languages 内的文件没有调用成功?

    如上图:没有报错,就是无法高亮,我换了各种语言尝试,结果一样

    虚心求教:

    实在没看出来自己不小心掉进了哪个坑里,求解救,谢谢~

    第 1 条附言    2015-04-28 00:12:20 +08:00
    虽然自己也觉得这个错误出的挺糗的,但是还是总结一下,免得后来人重蹈覆辙:

    Github 找各种项目确实很方便,但是直接 clone 下来的代码用作生产环境未必靠谱,最好去相应的官方主页下载稳定版本。因为作者很可能和我一样,随手提交……

    觉得自己笨死了……
    11 条回复    2019-10-22 15:37:01 +08:00
    alay9999
        1
    alay9999  
    OP
       2015-04-27 23:23:22 +08:00
    真的很费解,还望各位大神不吝赐教了……其实我真怕是错了个标点之类的小问题,那就糗大发了
    lincanbin
        2
    lincanbin  
       2015-04-27 23:49:11 +08:00   1
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link href="http://cdn.bootcss.com/highlight.js/8.5/styles/default.min.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/highlight.js/8.5/highlight.min.js"></script>
    <script>hljs.initHighlightingOnLoad();</script>
    </head>
    <body>
    <pre><code class="Javascript">function resizeLists() {
    var
    categories = $('#categories'),
    styles = $('#styles');
    categories.css('max-height', $(window).height() / 4);
    categories.perfectScrollbar('update');
    styles.height($(window).height() - styles.position().top - 20);
    styles.perfectScrollbar('update');
    }

    function selectCategory(category) {
    $('#languages div').each(function(i, div) {
    div = $(div);
    if (div.hasClass(category)) {
    var code = div.find('code');
    if (!code.hasClass('hljs')) {
    hljs.highlightBlock(code.get(0));
    }
    div.show();
    } else {
    div.hide();
    }
    });

    $(document).scrollTop(0);
    }

    function categoryKey(c) {
    return c === 'common' ? '' : c === 'misc' ? 'z' : c === 'all' ? 'zz' : c;
    }

    function initCategories() {
    var categories = {};
    $('#languages div').each(function(i, div) {
    if (!div.className) {
    div.className += 'misc';
    }
    div.className += ' all';
    div.className.split(' ').forEach(function(c) {
    categories[c] = (categories[c] || 0) + 1;
    });
    });
    var ul = $('#categories');
    var category_names = Object.keys(categories);
    category_names.sort(function(a, b) {
    a = categoryKey(a);
    b = categoryKey(b);
    return a < b ? -1 : a > b ? 1 : 0;
    });
    category_names.forEach(function(c) {
    ul.append('<li data-category="' + c + '">' + c + ' (' + categories[c] +')</li>');
    });
    $('#categories li').click(function(e) {
    $('#categories li').removeClass('current');
    $(this).addClass('current');
    selectCategory($(this).data('category'));
    });
    $('#categories li:first-child').click();
    ul.perfectScrollbar();
    }

    function selectStyle(style) {
    $('link[title]').each(function(i, link) {
    link.disabled = (link.title != style);
    });
    }

    function initStyles() {
    var ul = $('#styles');
    $('link[title]').each(function(i, link) {
    ul.append('<li>' + link.title + '</li>');
    });
    $('#styles li').click(function(e) {
    $('#styles li').removeClass('current');
    $(this).addClass('current');
    selectStyle($(this).text());
    });
    $('#styles li:first-child').click();
    ul.perfectScrollbar();
    }

    $(document).ready(function() {
    initCategories();
    initStyles();
    $(window).resize(resizeLists);
    resizeLists();
    });</code></pre>
    </body>
    </html>


    实测能亮啊……
    caomu
        3
    caomu  
       2015-04-27 23:50:33 +08:00   1
    唔。。。我还是觉得你可以先直接在 https://highlightjs.org/download/ 用cdn的或者从下载zip,然后再按 https://highlightjs.org/usage/ 的再来一遍。。。
    alay9999
        4
    alay9999  
    OP
       2015-04-27 23:58:38 +08:00
    @lincanbin 我就把那两个文件改到本地地址就不亮了,看来我应该换换文件,喵的,坑了我几乎一天
    alay9999
        5
    alay9999  
    OP
       2015-04-27 23:59:12 +08:00
    @caomu 感觉被 Github 上的代码坑了
    alay9999
        6
    alay9999  
    OP
       2015-04-28 00:06:14 +08:00
    @lincanbin
    @caomu
    真心气哭了,就是在 Github 下载的代码的问题……谢谢二位~~~
    xiaoz
        7
    xiaoz  
       2016-11-17 15:00:10 +08:00
    我最近从官网下载的 9.8.0 版本和你同样的问题,请问您最后怎样解决的呢?
    alay9999
        8
    alay9999  
    OP
       2016-11-17 16:50:32 +08:00
    @xiaoz 我当时官网下载就解决了,因为开始的时候是在 Github 下载的……
    xiaoz
        9
    xiaoz  
       2016-11-18 12:02:47 +08:00
    @alay9999 我也是官网下载的 zip 压缩包依然有这个问题,原因就是 Highlight.js 无法处理尖括号,因此插入 HTML 的时候就有问题,能把你的 Highlight.js 文件分享一下吗?
    alay9999
        10
    alay9999  
    OP
       2016-11-18 12:06:41 +08:00
    @xiaoz 我都记不清我用在哪个项目中了[笑哭]
    leosin
        11
    leosin  
       2019-10-22 15:37:01 +08:00
    特意注册账号回复你们,因为这个实在太坑了。。在高亮 html 代码的时候需要像下面这样写。亲测有效。
    &lt;!DOCTYPE html&gt;
    &lt;title&gt;Title&lt;/title&gt;

    &lt;style&gt;body {width: 500px;}&lt;/style&gt;

    &lt;script type=&quot;application/Javascript&quot;&gt;
    function $init() {return true;}
    &lt;/script&gt;

    &lt;body&gt;
    &lt;p checked class=&quot;title&quot; id=&#39;title&#39;&gt;Title&lt;/p&gt;
    &lt;!-- here goes the rest of the page --&gt;
    &lt;/body&gt;
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5819 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 01:35 PVG 09:35 LAX 18:35 JFK 21:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86