GWT TinyMCE拼写检查

时间:2011-08-10 20:53:19

标签: php gwt tinymce spell-checking

我正在尝试使用TinyMCE和拼写检查来启动并运行GWT应用程序。我希望对拼写错误的单词进行内联突出显示,并使用按钮进行拼写检查。我已经尝试了iespell和spellchecker,结果不佳。以下是我到目前为止所遵循的步骤
1。使用Eclipse Indigo下载最新的GWT
2。已下载的GWT TinyMCE插件http://code.google.com/p/tinymce-gwt/wiki/Tutorial
3。下载最新的TinyMCE
4。下载最新的SpellChecker http://www.tinymce.com/wiki.php/Plugin:spellchecker
5。替换了我在步骤2中使用步骤3下载的jar目录中的tiny_mce_editor目录。
6。将tiny_mce_editor \ plugins \ spellchecker目录替换为我在步骤4中下载的目录。
7。为GWT生成以下代码。

package com.test.reporting.client;

import gr.open.client.TinyMCE;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Reporting implements EntryPoint {
private TinyMCE tinyMCEEditor = new TinyMCE();

private final VerticalPanel verticalPanel = new VerticalPanel();
/**
 * This is the entry point method.
 */
public void onModuleLoad() {

    // Add the nameField and sendButton to the RootPanel
    // Use RootPanel.get() to get the entire body element
    RootPanel rootPanel = RootPanel.get();
    String[] plugins = tinyMCEEditor.getConfig().getPlugins().split(", ");
    String[] newPlugins = new String[plugins.length+1];
    System.arraycopy(plugins, 0, newPlugins, 0, plugins.length);
    newPlugins[plugins.length] = "spellchecker"; 

    tinyMCEEditor.getConfig().setPlugins(newPlugins);
    tinyMCEEditor.getConfig().setThemeAdvancedButtons3(new String[]{"spellchecker","iespell"});

    rootPanel.add(verticalPanel, 0, 0);
    verticalPanel.add(tinyMCEEditor);
}
}

现在,当我在Chrome或Firefox中使用它时,内联拼写不起作用,并且拼写检查图标会在此问题结束时再现错误。在Internet Explorer中,iespell图标出现但除了要求安装iespell之外什么都不做。但是,当我改变

tinyMCEEditor.getConfig().setThemeAdvancedButtons3(new String[]{"spellchecker","iespell"});

tinyMCEEditor.getConfig().setThemeAdvancedButtons3(new String[]{"iespell"});

在Chrome和Firefox中,内联拼写检查现在可以正常工作,但与TinyMCE关联的整个工具栏都会消失。

任何人都可以帮我解决我的两个问题吗?

由于

  • 长PHP错误 错误响应:?php / ** * $ Id:rpc.php 915 2008-09-03 08:45:28Z spocke $ * * @package MCManager.includes * @author Moxiecode * @copyright版权所有 2004-2007,Moxiecode Systems AB,保留所有权利。 * / require_once(“./ includes / general.php”); //设置RPC响应头标题('Content-Type:text / plain'); header('Content-Encoding:UTF-8'); header(“Expires:Mon,26 Jul 1997 05:00:00 GMT”); header(“Last-Modified:”。gmdate(“D,d M Y H:i:s”)。“GMT”); header(“Cache-Control:no-store,no-cache,must-revalidate”); header(“Cache-Control:post-check = 0,pre-check = 0”,false);标题(“Pragma:no-cache”); $ raw =“”; //尝试param if(isset($ _ POST [“json_data”]))$ raw = getRequestParam(“json_data”); //尝试全局数组if(!$ raw&amp;&amp; isset($ _ GLOBALS)&amp;&amp; isset($ _ GLOBALS [“HTTP_RAW_POST_DATA”]))$ raw = $ _GLOBALS [“HTTP_RAW_POST_DATA”]; //尝试全局变量if(!$ raw&amp;&amp; isset($ HTTP_RAW_POST_DATA))$ raw = $ HTTP_RAW_POST_DATA; //尝试stream if(!$ raw){if(!function_exists('file_get_contents')){$ fp = fopen(“php:// input”,“r”); if($ fp){$ raw =“”; while(!feof($ fp))$ raw = fread($ fp,1024); FCLOSE($ FP); } else $ raw =“”。的file_get_contents( “PHP://输入”); } //没有输入数据if(!$ raw)die('{“result”:null,“id”:null,“error”:{“errstr”:“无法获取原始发布数据。”,“errfile” : “”, “errline”:NULL, “errcontext”: “”, “水平”: “致命”}}'); //直通请求到远程服务器if(isset($ config ['general.remote_rpc_url'])){$ url = parse_url($ config ['general.remote_rpc_url']); //安装请求$ req =“POST”。 $ url [“path”]。 “HTTP / 1.0 \ r \ n”; $ req。=“连接:关闭\ r \ n”; $ req。=“主持人:”。 $ url ['host']。为 “\ r \ n” 个; $ req。=“Content-Length:”。 strlen($ raw)。为 “\ r \ n” 个; $ req。=“\ r \ n”。 $生; if(!isset($ url ['port'])||!$ url ['port'])$ url ['port'] = 80; $ errno = $ errstr =“”; $ socket = fsockopen($ url ['host'],intval($ url ['port']),$ errno,$ errstr,30); if($ socket){//发送请求头文件fputs($ socket,$ req); //读取响应头和数据$ resp =“”; while(!feof($ socket))$ resp。= fgets($ socket,4096); FCLOSE($插座); //拆分响应头/数据$ resp = explode(“\ r \ n \ r \ n”,$ resp); echo $ resp [1]; //输出体} die(); } //获取JSON数据$ json = new Moxiecode_JSON(); $ input = $ json-&gt; decode($ raw); //执行RPC if(isset($ config ['general.engine'])){$ spellchecker = new $ config'general.engine'; $ result = call_user_func_array(array($ spellchecker,$ input ['method']),$ input ['params']); } else die('{“result”:null,“id”:null,“error”:{“errstr”:“你必须在config.php文件中选择一个拼写检查引擎。”,“errfile”:“”, “errline”:NULL, “errcontext”: “”, “水平”: “致命”}}'); //请求和响应ID应始终相同$ output = array(“id”=&gt; $ input-&gt; id,“result”=&gt; $ result,“error”=&gt; null); //返回JSON编码的字符串echo $ json-&gt; encode($ output); ?&GT;

编辑: 我已经弄明白了如何进行浏览器拼写检查。您只需要包含gecko_spellcheck元素。但是我仍然失去了如何让TinyMCE拼写检查工作。

1 个答案:

答案 0 :(得分:2)

您需要设置一个tinymce init参数,以便在tinymces iframe框中激活gecko拼写检查引擎。你需要在init

中设置它
// This option enables you toggling the internal Gecko/Firefox spellchecker logic. 
// This option is set to false by default and will then remove the spellchecker from TinyMCE. 
gecko_spellcheck: true,