質問: jfactory::getdocument(); $doc->addstylesheet('mycode/css/article_1.css'); $doc->addscript('mycode/js/article_1.js'); ?> {/source} <div id="article_1"></div> _ページを表示すると、cssとjsの両方が読み込まれますが、addscript()は先着順であるため、スクリプト(jqueryを含む)はbeforejquery。コンソールが吐き出す: uncaught typeerror:$は関数ではありません addscript行を...に変更してみました._ $doc->addcustomtag('<script src="mycode/js/article_1.js" defer></script>'); _...(deferタグに注意してください)しかし、それは何もしないようです(スクリプトは追加されていません)。どこかで使えるところを見た..._ $doc->addscript('mycode/js/article_1.js', 'text/javascript" defer="false'); _...しかし、エディター(tinymceとcodemirrorの両方)は、上記の「を(&quot;に)エンコードし、その可能性を壊します。また、_article_1.js_コードをイベントリスナーでラップしてみました..._ document.addeventlistener('domcontentloaded', function(){ ... } _...しかし、それは役に立たないようです:\私はまだ得ます: uncaught typeerror:$は関数ではありません 記事内からjqueryスクリプトをどのように追加しますか?
回答: 記事からjquery.frameworkを呼び出して、この回避策を試してください。テンプレートからのjquery.framework呼び出しをオーバーライドして、スクリプトの前にjqueryが呼び出されるようにする必要があります。{source} <?php jhtml::_('jquery.framework'); $doc = jfactory::getdocument(); $doc->addstylesheet('mycode/css/article_1.css'); $doc->addscript('mycode/js/article_1.js'); ?> {/source} <div id="article_1"></div>