tiny-mce textarea无法正确显示grails

时间:2012-05-17 10:20:55

标签: grails tinymce grails-plugin

我在使用带有grails的“tiny-mce”时遇到问题(textarea未正确显示)。 我正在使用Eclipse Indigo并安装了带有“grails install-plugin tiny-mce”的tiny-mce插件。 我写的代码是:

<!doctype html>
<html>
<head><title>TinyMCE Test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <tinyMce:resources />
    <tinyMce:importJs/>
</head>

<body>
        <tinyMce:renderEditor type="advanced"/>

</body>

</html>

问题是显示的textarea没有tiny-mce功能,即可以用来格式化文本的所有好的属性/按钮。 textarea只是一个简单的HTML文本区域。 看起来检查生成的源代码(即右键单击&gt;视图源)可能存在一些问题:

<!doctype html>
<html>
<head><title>TinyMCE Test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>    
    <script type="text/javascript" src="/MyGrailsProject/static/plugins/tiny-mce-    3.4.9/js/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
     <script type="text/javascript" src="/MyGrailsProject/static/plugins/tiny-mce-3.4.9/js/tinymce/jscripts/tiny_mce/tiny_mce.js"></script><script type="text/javascript">tinyMCE.init({
                            mode : "textareas",
                            theme : "simple",
                            editor_selector : "mcesimple",
                            theme_advanced_toolbar_location : "null"
                        });tinyMCE.init({
                            mode : "textareas",
                            theme : "advanced",
                            editor_selector : "mceadvanced",
                            theme_advanced_toolbar_location : "top"
                        });</script>
</head>
<body>
<textarea class='null mceadvanced'></textarea>
</body></html>

看起来textarea类的值为null。它是否正确?有谁知道为什么我的textarea没有正确渲染?问题是否与找不到文件“tiny_mce.js”有关?如果是这种情况,我该如何解决这个问题?

祝你好运 粘土

6 个答案:

答案 0 :(得分:2)

好的,所以我通过以下方式实现了这个目标:

  1. http://www.tinymce.com/download/download.php =&gt;下载tinymce给你一个文件〜/ tinymce
  2. 将〜/ tinymce复制到/ web-apps / js / tiny_mce
  3. 在main.gsp中添加<g:javascript src="tiny_mce/tiny_mce.js"/>这将获取web-apps / js文件夹下的文件夹
  4. 微小的mce在这一点上仍然不起作用。它会抱怨en.js和editor_template.js
  5. 您必须转到Config.groovy并添加此行
    grails.resources.adhoc.excludes = ['/js/tiny_mce/**/*.*']
  6. 现在回到gsp,添加tiny_mce.init()行ex

    tinyMCE.init({
        theme : "advanced",
        mode : "textareas",
        plugins : "fullpage",
        theme_advanced_buttons3_add : "fullpage"
    });

    内的<g:javascript>标记内容

    <g:javascript>
    tinyMCE.init({
        theme : "advanced", 
        mode : "textareas",
        plugins : "fullpage",
        theme_advanced_buttons3_add : "fullpage"
    });
    </g:javascript>
  7. 现在按照惯例<g:textArea name="..."/>

  8. 添加textarea
  9. Grails在${fieldValue(bean:...)}之类的内容中默认转义为html,因此你的美丽小mce标记将被转义
  10. 将上述内容更改为${object.field}和前例:${person.firstName},然后就可以了。

答案 1 :(得分:1)

让它工作的更简单的方法 - 在html head中包含tinymce js

<head>
<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
<script>
        tinymce.init({selector:'textarea'});
</script>
</head>

在GSP中有一个textarea元素('message'是一个字段名为'content'的命令对象)

<textarea  rows="10" name="content" >${fieldValue(bean:message,field:'content')}</textarea>

这是在Grails 2.2中测试的,而不是CDN //tinymce.cachefly.net,tinymce js文件可以放在web-app / js目录中并以更简单的方式包含在GSP中

答案 2 :(得分:0)

需要找到“tiny_mce.js”才能使编辑器正常工作! 确保在这里使用正确的路径。

答案 3 :(得分:0)

您可以使用富UI插件进行富文本编辑。

它非常简单和漂亮。

只需安装ricuui插件和

在头部添加资源。

像这样。

这成为头部           

这进入身体------

并享受......

答案 4 :(得分:0)

TinyMCE Grails Plugin 是必要的,目前已过期3个月。您可以转到TinyMCE's site并在那里下载最新版本。

提取其ZIP文件并将文件夹tinymce\jscripts\tiny_mce复制到web-app文件夹下的Grails项目中。 (请注意将其复制到web-app\js,因为它由Resources插件管理,您需要在ApplicationResources.groovy内公开所有必需的静态资源。 )

然后在你的.GSP中,你会在页面的<head>部分看到类似内容:

<g:javascript src="../tiny_mce/tiny_mce.js"/>
<r:script>
    tinyMCE.init({
        mode: "textareas",
        theme: "advanced"
    });
</r:script>

答案 5 :(得分:0)

如果你在BuildConfig.groovy中使用运行时“:resources:1.1.6”而不是用它来更新它 runtime':资源:1.2'。 这对我来说很好。