joomla の ScriptMerge を使用してすべての js ファイルを 1 つにマージしましたが、window.addEvent はスクイーズ ボックスの初期化の関数ではありません。これ以外はすべて正常に動作しています...スクイーズ ボックスのコードが唯一の JavaScript であることに気付きましたヘッドタグにブロックが残っていると、他のすべてのスクリプトがマージされて本文に移動されます...スクイーズボックスを開くボタンをクリックすると、もちろん開きませんが、もう一度クリックすると正常に開きます...誰か持っていますかこのエラーを解決する方法を教えてください。おそらく、mootools コアがマージされた js ファイルで呼び出されていますが、head では呼び出されていないため、mootools コアがないため、スクイーズ ボックス コードがエラーを返している可能性があります。
質問する
16565 次
1 に答える
4
問題があります:スクリプトでasync属性を使用しています - asyncは、スクリプトがロードされ、デフォルトの動作のように dom の実行を保持しないことを意味します ( asyncまたはdeferなし)。mootoolswindow.addEvent
がページにロードされていないときに呼び出そうとすると、 のエラーが発生するのはこのためです。undefined
問題の 2 つの解決策:
- async属性を削除して、ロードされるまでスクリプトを強制的に保持してから、dom の実行を続行します。
- スクリプト タグにイベントを追加し
onload
、残りのスクリプトをそこで実行します。
<script src="http://tereni.me/cache/plg_scriptmerge/975e10ecd911c8ca09713d1120c51a6d.js" async type="text/javascript" onload="onLoadScript();"></script>
その後、別のスクリプトタグ内で:
function onLoadScript(){
window.addEvent('domready',function(){
alert('dom is ready');
});
}
于 2013-04-23T18:39:29.523 に答える