0

SyntaxHighlighter ( http://alexgorbatchev.com/SyntaxHighlighter/ ) を使用してソースコードの総行数を取得することは可能ですか?

ここで定義されている手法を使用できます:テキストエリアの行数を取得するには? しかし、おそらく SyntaxHighlighter の方が簡単に実行できます。

ありがとうございました。

4

1 に答える 1

1

組み込みのソリューションがあるとは思いませんが、トリックを実行する関数を次に示します。メソッドを使用しているgetElementsByClassNameため、IE8以下では動作しないと思います。必要に応じて、お気に入りの DOM クエリ ライブラリを使用してください。

/**
 * Returns the number of lines in a SyntaxHighlighter code block.
 *
 * @param {Element} node The top-level DOM element containing the code block.
 * @return {Number} The number of code lines, or 0 if not found.
 */
function getLineCount(node) {
    var codeNode;
    var containerNode;

    if (node && typeof node.getElementsByClassName === 'function') {
        codeNode = node.getElementsByClassName('code');

        if (codeNode.length) {              
            containerNode = codeNode[0].getElementsByClassName('container');

            if (containerNode.length) {
                return containerNode[0].children.length;
            }
        }
    }

    return 0;
}

どうやらそれが問題なので、jQueryバージョン。

function getLineCount(node) {
    return $(node).find('.code .container').children().length;
}
于 2013-06-20T17:37:34.160 に答える