Mathematicaコードを強調表示できるように、自分のページでGoogleコードprettifyの適応バージョンを使用しています。必要なjsコードを正しく挿入するには、 JPrettify プラグインが非常に便利です。このプラグインは正式に利用できなくなったようで、とにかくそれを微調整する必要があるので、私は GitHub に独自のバージョンを設定しました。
昨日、私は 事実を指摘しました Joomla 3では機能しないことをデバッグしましたが、いくつかのデバッグの後で、次のように挿入されたときに関数PrettyPrint
が呼び出されないことがわかりましたHTMLヘッド:
_window.addEvent('domready', function() { prettyPrint();});
_
これが JPrettify (53行目)のやり方です。グーグルで調べた結果、問題は mootools ライブラリであることがわかりました。静的に挿入することで問題を解決しました
_<body onload="PrettyPrint()">
_
メインテンプレートのphpファイルに挿入します。もちろん、これは正しい方法ではありません。
質問:プラグインをJoomlaの異なるバージョンで動作させるには、PrettyPrint()
を呼び出すのに最適な方法は何ですか?
Body onloadを実行するのではなく、以下が機能するはずです。
$(document).ready(function() {
PrettyPrint();
});
または、JavaScriptを使用して関数がいつ呼び出されたかを判断する場合は、次のように使用できます。
window.onload = function() {
PrettyPrint();
};
Joomla 3には、Mootoolsベースのスクリプトを削除してjQueryのスクリプトに置き換える作業が進行中です。コードが失敗する主な問題は、Mootoolsを自分でロードしないことです。以前のバージョンのJoomlaでは、メインレイアウトまたはモジュールによって読み込まれていた可能性がありますが、スクリプトでは不要になったため、読み込まれなくなりました。
したがって、モジュールに必要な場合は、JHtmlBehavior::famework()
( http://api.joomla.org/cms-3/classes/JHtmlBehavior.html#method_framework )を使用してロードします。
JQueryを使用するようにスクリプトを書き直す場合も同様です。それがロードされることを期待しないでください、あなたはそれが必要であることをJoomlaに伝えます。 Joomlaは一度だけロードされるように注意します。 jQueryをロードするには、JHtmlJquery::framework()
( http://api.joomla.org/cms-3/classes/JHtmlJquery.html#method_framework )を使用します。