URL を介して自動的に生成される HTML と javascipt があります。この html と javascipt は、Smarty テンプレートを使用して生成されます。残念ながら、生成されたこのコードは多数の jQuery を使用していますが、jQuery ライブラリへの参照がコードに含まれていないため、エラーが発生します。これを変更することはできません。以下は、エラー「Uncaught Reference Error: cj is not defined」を生成する JavaScript の最初の部分の例です。
<script type="text/javascript">
cj( function() {
var element_date = "#birth_date_display";var element_time = "#birth_date_time";var time_format = cj( element_time ).attr('timeFormat');
cj(element_time).timeEntry({ show24Hours : time_format, spinnerImage: '' });
var currentYear = new Date().getFullYear();var alt_field = '#birth_date';cj( alt_field ).hide();var date_format = cj( alt_field ).attr('format');var altDateFormat = 'mm/dd/yy';
switch ( date_format ) {
case 'dd-mm':
case 'mm/dd':
altDateFormat = 'mm/dd';
break;
}
私ができることは、ファイルの最後にコードを追加することです。そのため、関連するライブラリをロードして、同じ JavaScript コードをもう一度入力するだけで問題なく動作します。
私が直面している問題は、事後でも jQuery を使用してページのスタイリングを行おうとしていることです。以下の行は私に問題を与えています。すべてが正常にラップされますが、私の JavaScript ファイルはこの行で終了します。
$("#editrow-email-Primary, #editrow-phone-1-1, #editrow-birth_date").wrapAll("<div class='grid-group personal' />");
再び同じエラー「Uncaught reference error: cj is not defined.」が表示されます。jQuery UI の datepicker を使用するため、以前の JavaScript のほとんどは editrow-birth_date div です。面白いことに、ファイルの末尾に同じ JavaScript と jQuery を追加するだけで、.wrapAll を追加するまで問題なく動作します。その後、元のjavascriptで何かを再度実行しようとして、新しいエラーを生成して終了しているようです。
私はここで完全に立ち往生しており、何が起こっていると思うかを適切に説明する方法さえ知りません. 元の JavaScript をオンザフライでコードから削除して、もう実行できないようにする方法はありますか? そうは思いませんが、それで問題が解決すると思うので、そう願っています。