ホームページ >ウェブフロントエンド >jsチュートリアル >z-blog SyntaxHighlighter の長いコードをラップできません (jquery に基づく)_jquery

z-blog SyntaxHighlighter の長いコードをラップできません (jquery に基づく)_jquery

WBOY
WBOYオリジナル
2016-05-16 15:31:201266ブラウズ

SyntaxHighlighter 構文強調表示プラグインを使用している友人は、改行なしでコードが表示されるという問題に遭遇した可能性があります。この問題に対する解決策はインターネット上にありませんでした。今日、私は解決しました。解決策は実際には簡単です。それについて話しましょう...

解決策:

shCoreDefault.css ファイルを開き、.syntaxhighlighter textarea の定義を見つけて、次の文を最後に追加します。これで問題ありません。これは、コードが強制的に折り返されることを意味します。画面。

人によって呼び方が異なるため、必要に応じて CSS を変更できます

テストの結果、バージョン 3.08 では無効であることが判明しました。次のメソッドを参照してください。

私のブログは主にコード共有に関するものであるため、投稿されるコードの多くは非常に長いです。多くの場合、手動でラップする必要があります。

でも、今日はどうしても我慢できません。オンラインで解決策を見つけてください。

1. CSS の変更:

フォルダー内: zb_systemADMINueditorthird-partySyntaxHighlighter

ファイル shCoreDefault.pack.css に css を追加します:

body .syntaxhighlighter .line{  
white-space: pre-wrap !important;
} 
.syntaxhighlighter{
width:100%!important;margin:.3em 0 .3em 0!important;position:relative!important;overflow:auto!important;background-color:#f5f5f5!important;border:1px solid #ccc!important;word-break:break-all;
}

2. JQuery コード:

$(function () {
 // Line wrap back
 var shLineWrap = function () {
  $('.syntaxhighlighter').each(function () {
   // Fetch
   var $sh = $(this),
    $gutter = $sh.find('td.gutter'),
    $code = $sh.find('td.code')
    ;
   // Cycle through lines
   $gutter.children('.line').each(function (i) {
    // Fetch
    var $gutterLine = $(this),
     $codeLine = $code.find('.line:nth-child(' + (i + 1) + ')')
     ;
    //alert($gutterLine);
    // Fetch height
    var height = $codeLine.height() || 0;
    if (!height) {
     height = 'auto';
    }
    else {
     height = height += 'px';
     //alert(height);
    }
    // Copy height over
    $gutterLine.attr('style', 'height: ' + height + ' !important'); // fix by Edi, for JQuery 1.7+ under Firefox 15.0
    console.debug($gutterLine.height(), height, $gutterLine.text(), $codeLine);
   });
  });
 };
 // Line wrap back when syntax highlighter has done it's stuff
 var shLineWrapWhenReady = function () {
  if ($('.syntaxhighlighter').length === 0) {
   setTimeout(shLineWrapWhenReady, 10);
  }
  else {
   shLineWrap();
  }
 };
 // Fire
 shLineWrapWhenReady();});

上記のコードはロングコードです。みんなが転職したかどうか見てみましょう? ?

これで、行番号の高さがコードの高さと一致します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。