0

我正在将 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>

根据萤火虫,文件的路径是正确的,但它们没有出现在指定的 div 位置。我可以看到图像应该在哪里,并且它是空的。

那么,需要做些什么才能将此功能与 Grails 应用程序集成呢?

4

1 回答 1

1

除非您已将 js 文件映射为 gsp,否则您不能在 .js 文件中使用 GSP 标签。您可以创建一个gsp 文件,例如fade_in.gsp 来声明图像数组。

例如 - fade_in.gsp

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

然后将此 gsp 文件包含在需要图像数组的其他页面中。

于 2012-04-13T05:01:11.820 回答