我正在将Web应用程序从PHP / MySQL后端迁移到Grails框架。但是,该应用程序为我编写了相当多的旧式JavaScript代码,我希望使用它们进行最少的重写。它当前无法正常工作,我不确定为什么。
一位 friend 写了一个淡出幻灯片脚本,该脚本要求将数组初始化为
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)来声明images数组。
例如-fade_in.gsp
<script>
//you initialize your javascript array here - you can use all gsp tags.
</script>
然后将此gsp文件包含在其他需要图像数组的页面中。
关于javascript - 将Javascript函数与Grails应用程序集成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10132254/