将Javascript函数与Grails应用程序集成

Integrating Javascript functions with Grails application

本文关键字:应用程序 集成 Grails Javascript 函数      更新时间:2023-09-26

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

原始脚本的工作方式是在脚本中启动图像数组,然后通过主体代码中的函数调用传入。 由于我不知道是否可以在 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>

根据firebug的说法,文件的路径是正确的,但它们没有显示在指定的div位置。 我可以看到图像应该在哪里,它是空的。

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

除非您已将 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 文件包含在需要图像数组的其他页面中。