2011-09-22 5 views
5

私はWebページ上でSyntaxhighlighterを使用していますが、SyntaxHighlighter.autoloader(...)を使用してすべてのブラシをロードし、SyntaxHighlighter.all()を適用するjavascript関数を作成しましたSyntaxhighlighterはajaxリクエスト後にブラシを見つけることができません

ページが読み込まれたときにこの関数を1回実行すると、構文ハイライトが正しく適用されます。

その後、私はajaxを使っていくつかの新しいコンテンツを読み込み、この同じ関数を実行して新しいコンテンツを強調表示します。

しかし今回はSynthhighlighterがロードされたすべてのブラシを忘れていたようですが、ブラシがロードされていないという警告が表示されます。

私は周りを見回したと2考えられる原因を発見したが、これを引き起こしているものは考えていない:私はリポジトリからアンパックshCore.jsを使用する場合は、私の解決策のように見えるが

An issue on the bitbucket repository

をIDEは構文エラーを示して、とにかく実行しようとするとjavascriptエラーが発生します。

私が他の同様のスタックオーバーフローポストのいくつかの答えで見つけたもう一つの解決策は、ページがロードされた後.all()の代わりにSyntaxHighlighter.highlight()を使用することです。しかし、これは動作しません。

私が使用している機能:

function loadSyntaxHighLighter() { 
    SyntaxHighlighter.autoloader(
      'ahk ' + app.assets + 'js/syntaxhighlighter/brushes/shBrushAhk.js', 
      'aps ' + app.assets + 'js/syntaxhighlighter/brushes/shBrushAppleScript.js' 
      //... 
    ); 

    SyntaxHighlighter.defaults['toolbar'] = false; 

    if (SyntaxHighlighter != 'undefined') { 
     SyntaxHighlighter.highlight(); 
    } else { 
     SyntaxHighlighter.all(); 
    } 
} 

誰もがこの問題を解決する方法上の任意のアイデアを持っていますか? 'ahk ' + app.assets + 'js/syntaxhighlighter/brushes/shBrushAhk.js':(または誰かが私には変更はビットバケットに提案することができますどのように私を指摘することができます)

おかげ

答えて

0

ただ、初期の推測では、あなたはこの結果をプリントアウトしていますか?

この構造がブラシの正しいパスを指していない場合、それらはロードされません。また、パスが相対的なベースパスの関係にあることを確認してください。

2

私は同じ問題がありました。私はちょうどbitbucketの提案に似てそれを解決しました。

は、直前に次のコードを追加します。loadSyntaxHighLighter()コール:

SyntaxHighlighter.vars.discoveredBrushes=null; 

SyntaxHighlighterは、ページ上のブラシを再発見し、appopriateものをロードするように強制されます。

よろしく トム

+1

これは、私を助けてくれ!ありがとうございました(それがその後4年近く経っていても...) –

関連する問題