2012-04-12 54 views
0

我正在將Web應用程序從PHP/MySQL後端轉移到Grails框架。然而,該應用程序有一些遺留的JavaScript代碼編寫,我想用最少的重寫。它目前不工作,我不知道爲什麼。將JavaScript函數與Grails應用程序集成

一個朋友寫了一淡出幻燈片腳本,需要初始化爲

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" /> 

原始腳本的工作是圖像陣列在腳本initalized的方式,然後通過體內代碼的函數調用傳遞英寸因爲我不知道,如果它能夠在一個js文件使用一個Grails createLinkTo函數調用,我初始化數組,並調用

<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> 

功能根據螢火蟲,這些文件的路徑是正確的,但他們沒有顯示在指定的div位置。我可以看到圖像應該在哪裏,而且是空的。

那麼,需要做什麼才能將此功能與Grails應用程序集成?

+0

我假設你的調用fadeshow傳遞fadeimages是一個錯字,因爲你的數組被命名爲「images」? – 2012-04-12 22:14:26

+0

@Steve H.這是一個錯字 – Jason 2012-04-13 01:30:05

回答

1

除非已將js文件映射爲gsp,否則不能在.js文件中使用GSP標記。 你可以創建一個gsp文件,例如fade_in.gsp來聲明圖像數組。

EG - fade_in.gsp

<script> 
    //you initialize your javascript array here - you can use all gsp tags. 
</script> 

,然後再向其他頁面此GSP文件所需要的圖像陣列。

相關問題