【问题标题】:Integrating Javascript functions with Grails application将 Javascript 函数与 Grails 应用程序集成
【发布时间】:2012-04-12 21:38:20
【问题描述】:

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

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

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

【问题讨论】:

  • 我认为你调用 fadeshow 传递 fadeimages 是一个错字,因为你的数组被命名为“images”?

标签: javascript grails


【解决方案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 文件包含在需要 images 数组的其他页面中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 2018-04-30
    • 2015-10-21
    相关资源
    最近更新 更多