Web アプリケーションを PHP/MySQL バックエンドから Grails フレームワークに移行中です。ただし、アプリにはかなりの量の古い JavaScript コードが書かれており、最小限の書き換えで使用したいと考えています。現在、機能していません。その理由はわかりません。
友人が、次のように初期化された配列を必要とするフェードアウト スライドショー スクリプトを作成しました。
var images[3];
images[0] = ['path to image', 'link to somewhere', 'target'];
PHP で書くときは、リンクとターゲットに相対パスと二重引用符を使用しました。つまり、
images[0] = ["../images/file.jpg", "", ""]
Grails に移行して、すべてのページでスライドショーを表示したいので、main.gsp に挿入します。
頭の中でjavascriptリンクを次のように宣言しました
<g:javascript src="fade_in.js" />
元のスクリプトの動作方法は、画像配列がスクリプトで初期化され、本体コードの関数呼び出しを介して渡されました。createLinkTo
jsファイルでGrails関数呼び出しを使用できるかどうかわからないので、配列を初期化し、関数を呼び出しました
<div id="slideshow">
<script type="text/javascript">
var images[3];
images[0] = ["<g:createLinkTo dir='images' file='nsf.jpg' />", "", ""]
images[1] = ["<g:createLinkTo dir='images' file='east.jpg'/>", "", ""]
images[2] = ["<g:createLinkTo dir='images' file='usm_horz.png' />", "", ""]
new fadeshow(fadeimages,200,118,0,8000,1,"R");
</script>
</div>
firebug によると、ファイルへのパスは正しいのですが、指定された div 位置に表示されていません。画像がどこにあるべきか、そして空であることがわかります。
では、この機能を Grails アプリと統合するには、何をする必要があるのでしょうか?