Dojo を使用して単一ページの Web サイトを作成しています。チュートリアルでは、dojo/request を使用して ajax リクエストを作成する方法について説明します。リクエストを作成し、html コンテンツを受信して、コンテンツ パネル (div 要素) に挿入するだけです。これは、サンプルでも示されています。
必要な機能を備えた実際のコンテンツの読み込みを開始するときは、ajax 呼び出しによって要求されるスクリプト要素もコンテンツに追加する必要があります。問題は、ajax コンテンツで受け取ったスクリプトが実行されないことです。
どちらの場合contentNode.innerHTML = data;
もdomConstruct.place(data, contentNode, "only");
コンテンツは表示されますが、コンテンツ内のスクリプトは実行されません。
私が理解しているようにdijit.layout.ContentPane
、実行時ではなく設計時にコンテンツをロードするのにより適した もあります。
コンテンツが読み込まれる前にスクリプトを実行することはできません。すべてのページに処理が必要な要素がいくつかあり、それらはメイン ページが読み込まれるときに利用できないためです。たとえば、フォーム送信の動作を変更する必要があります。
では、ロードされたスクリプトを実行するにはどうすればよいでしょうか?