2011-09-22 40 views
5

Tôi đang sử dụng Syntaxhighlighter trên trang web, tôi đã tạo một hàm javascript để tải tất cả các bàn chải bằng cách sử dụng SyntaxHighlighter.autoloader (...) và áp dụng SyntaxHighlighter.all()Syntaxhighlighter không thể tìm thấy bất kỳ cọ vẽ nào sau khi yêu cầu ajax

Tôi chạy chức năng này một lần khi trang được tải, kết quả: làm nổi bật cú pháp được áp dụng chính xác.

Sau đó, tôi tải một số nội dung mới bằng ajax và chạy cùng chức năng này để làm nổi bật nội dung mới.

Tuy nhiên lần này Syntaxhighlighter dường như đã quên tất cả các bàn chải được nạp, tôi nhận được thông báo cho biết bàn chải không được tải.

Tôi không có ý tưởng những gì đang gây ra điều này mặc dù tôi đã nhìn quanh và thấy 2 nguyên nhân có thể:

An issue on the bitbucket repository

này trông giống như các giải pháp nhưng khi tôi sử dụng shCore.js giải nén từ kho lưu trữ của tôi IDE cho biết một lỗi cú pháp và tôi nhận được lỗi javascript khi tôi cố gắng chạy nó anyway.

Một giải pháp khác mà tôi đã tìm thấy trên một vài câu trả lời trên các bài đăng Stack Overflow tương tự khác là sử dụng SyntaxHighlighter.highlight() thay vì .all() sau khi trang đã được tải. Điều này không làm việc tuy nhiên.

Chức năng Tôi đang sử dụng:

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(); 
    } 
} 

Có ai có bất kỳ ý tưởng về làm thế nào để sửa lỗi này? (Hoặc ai đó có thể chỉ cho tôi hiểu làm thế nào tôi có thể thực hiện thay đổi đề nghị trên bitbucket)

Cảm ơn

Trả lời

0

Chỉ cần một đoán ban đầu, bạn đã in ra kết quả của việc này: 'ahk ' + app.assets + 'js/syntaxhighlighter/brushes/shBrushAhk.js'?

Nếu cấu trúc này không trỏ đến đường dẫn chính xác của chổi mà chúng sẽ không được tải. Hãy chắc chắn rằng cũng là con đường là đúng trong mối quan hệ của con đường cơ sở tương đối bạn đang có.

2

Tôi gặp vấn đề tương tự. Tôi vừa giải quyết nó tương tự như gợi ý của bitbucket.

Thêm mã sau ngay trước: loadSyntaxHighLighter() gọi:

SyntaxHighlighter.vars.discoveredBrushes=null; 

SyntaxHighlighter sẽ bị buộc phải tái khám phá bàn chải trên trang của bạn và tải những appopriate.

Kính trọng Tom

+1

Điều này đã giúp tôi! Cảm ơn rất nhiều (ngay cả khi đã gần 4 năm kể từ đó ...) –

Các vấn đề liên quan