9

ここにシンタックス ハイライト用の軽量で強力な JavaScript コードがあります。

http://softwaremaniacs.org/soft/highlight/en/

しかし、このコードは<pre><code></code></pre>ブロックでのみ機能します。これが私の問題です。ChromeとSafariには、コードをコピーして貼り付けるときに<pre></pre>改行が含まれていないため、使用したいのですが、それは機能します。<pre><code></code></pre><pre></pre>

ユーザーガイドもありますが、正直なところ、事前タグだけを強調表示するにはどうすればよいかわかりません。ユーザーガイドはこちら:

http://softwaremaniacs.org/soft/highlight/en/description/

4

4 に答える 4

12

<code>現在のバージョンの chrome では、タグの改行に問題はありません。たとえば、この例をクロムで
試してください。

ここでは jQuery なしのバージョンです。

===更新===

<code>タグなしの例です。

window.onload = function() {
    var aCodes = document.getElementsByTagName('pre');
    for (var i=0; i < aCodes.length; i++) {
        hljs.highlightBlock(aCodes[i]);
    }
};
于 2012-06-07T18:04:53.120 に答える
8

初期化を次のように変更する必要があると思います。

$("pre").each(function (i, e) {
    hljs.highlightBlock(e);
});

"pre code"jQueryセレクターには使用しないでください。それがプラグインの使用方法とまったく同じかどうかはわかりませんが、変更する必要があるのはそれだと思います...

編集:

jQueryを使用していない場合は、次のような方法を試してみてください。

window.onload = function () {
    var allPre, i, j;
    allPre = document.getElementsByTagName("pre");
    for (i = 0, j = allPre.length; i < j; i++) {
        hljs.highlightBlock(allPre[i]);
    }
};

window.onloadDOMが操作の準備ができていることを確認するには、にあるか、それに類似したものである必要があります。

于 2012-06-07T17:39:47.793 に答える