2012-05-17 26 views
1

我在grails中使用「tiny-mce」時出現問題(textarea顯示不正確)。 我正在使用Eclipse Indigo並且已經安裝了帶有「grails install-plugin tiny-mce」的tiny-mce插件。 我所編寫的代碼是:tiny-mce textarea在grails中無法正確顯示

<!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的不具有微小-MCE的特徵,即,所有良好特性/按鈕可用於設置文本的格式。 textarea只是一個簡單的html textarea。 它看起來像檢查生成的源代碼(即右單擊 - >視圖源)可能具有一些問題:

<!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的類有一個空值。它是否正確?有誰知道爲什麼我的textarea渲染不正確?問題與沒有找到文件「tiny_mce.js」有關嗎?如果是這樣的話,我該如何解決這個問題?

問候 克萊

回答

0

「tiny_mce.js」需要爲了使編輯工作中找到! 確保您在這裏使用正確的路徑。

0

你可以使用豐富的UI插件富文本編輯器。

它很簡單,很好。

只需安裝插件ricuui和頭部分

添加資源。

這樣子。

成頭部分

到這個身體------

,並享受這......

0

TinyMCE Grails Plugin必要的,而且是目前過期3個月。您可以轉到TinyMCE's site並在那裏下載最新版本。

提取ZIP文件並將文件夾tinymce\jscripts\tiny_mce複製到您的Grails項目的web-app文件夾下。 (小心,因爲這是由Resources插件管理將其複製到web-app\js和你需要露出裏面ApplicationResources.groovy每個所需的靜態資源)您的內部

然後。GSP,你有這樣的事情在你的頁面的<head>部分:

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

好了,我通過以下操作得到了這個工作:

  1. 下載TinyMCE的從http://www.tinymce.com/download/download.php =>給你文件〜/ TinyMCE的
  2. 複製〜/ TinyMCE的到/網絡應用/ JS/tiny_mce
  3. 在main.gsp添加<g:javascript src="tiny_mce/tiny_mce.js"/>這將拿起文件夾中的網絡應用程序/ JS文件夾下
  4. 小小的mce在這一點上仍然不起作用。它會抱怨en.js和editor_template.js
  5. 你必須去Config.groovy中添加此行
    grails.resources.adhoc.excludes = ['/js/tiny_mce/**/*.*']
  6. 現在回到GSP,添加tiny_mce.init()行前

    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. Grails的由內而外的東西默認逃逸HTML像${fieldValue(bean:...)}讓你的美麗的小MCE標記將被轉義
  9. 更改上面${object.field}和ex:${person.firstName}和你有它。
0

如果您在BuildConfig.groovy中使用運行時「:resources:1.1.6」,而不是使用 runtime':resources:1.2'進行更新。 它對我來說很好。

1

更簡單的方法來得到它的工作 - 包括在HTML頭TinyMCE的JS

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

已經在GSP一個textarea元素(「信息」是與字段名「內容」的命令對象)

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

這Grails中2.2進行了測試,而不是CDN //tinymce.cachefly.net,TinyMCE的JS文件可以放置在web應用程序/ JS DIR和包括在GSP,以更簡單的方式