论坛首页 Web前端技术论坛

(投机取巧)在ajax应用中整合fckeditor

浏览 9679 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-29  

项目中一直使用fck做为html编辑器,最近需要在一个ajax应用中整合fckeditor, 然后看了看 http://www.iteye.com/article/44349 这篇文章(里面已经讲过fck提交的时候处理过程,这里就不赘述了).  同时macrochen 也提供了一个办法来整合应用. 我这里要说的是另外一种投机的偷懒做法:

    因为fck是在提交的时候才将iframe中的html写到一个隐藏的textarea中,所以提交的时候直接取这个textarea是取不倒值的,为了不去更改fck的源码,我走了另外一条路子,就是将表单"提交两次", 注意是加了引号的. 第一次提交的时候,永远返回false,目的就是一个,让fck把ifame中的html写到textarea中,然后过1秒以后在提交一次,这个时候就能很方便的取到表单的值了.

  下面附上js代码:

    <script type='text/javascript'>
   var submitCount = 1;  //记录提交次数
   function validate()  //表单提交的时候验证函数 onsubmit="return validate()'
   { 
    if(submitCount == 1) //第一次提交直接返回false,并且1秒以后再执行validate().
    {
     submitCount ++;
     setTimeout('validate()',1000);
     return false;
    }

    //第二此提交的时候直接可以从表单中取得值了.
    var frm = $('testFrm');    
    var params = frm.serialize();
    $("info").innerHTML = params;
    return false;
   }
  </script>

<script type="text/javascript">
   var submitCount = 1;  //记录提交次数
   function validate()  //表单提交的时候验证函数 onsubmit="return validate()'
   { 
    if(submitCount == 1) //第一次提交直接返回false,并且1秒以后再执行validate().
    {
     submitCount ++;
     setTimeout('validate()',1000);
     return false;
    }

    //第二此提交的时候直接可以从表单中取得值了.
    var frm = $('testFrm');    
    var params = frm.serialize();
    $("info").innerHTML = params;
    return false;
   }
  </script>

   发表时间:2007-03-02  
你的JS代码贴重复了

不知道下面的语句能否符合你的要求。
var editor = FCKeditorAPI.GetInstance("EditorDefault");
var content=editor.EditorDocument.body.innerHTML;
0 请登录后投票
   发表时间:2007-03-05  
提交之前,oFCKeditor_fieldClientId.UpdateLinkedField();就可以取得值了
0 请登录后投票
   发表时间:2007-03-15  
引用
var editor = FCKeditorAPI.GetInstance("EditorDefault");
var content=editor.EditorDocument.body.innerHTML;


是java 代码还是 js代码
0 请登录后投票
   发表时间:2007-03-15  
JavaFlasher 写道
引用
var editor = FCKeditorAPI.GetInstance("EditorDefault");
var content=editor.EditorDocument.body.innerHTML;


是java 代码还是 js代码


是js代码
0 请登录后投票
   发表时间:2007-08-27  
正确写法应该是这样的吧,而且取得也不是那个隐藏的input框的id,应该是取iframe后面那个隐藏的textarea的ID
var content = FCKeditorAPI.GetInstance("textarea_id").GetXHTML();
0 请登录后投票
   发表时间:2007-08-27  
正确写法应该是这样的吧,而且取得也不是那个隐藏的input框的id,应该是取iframe后面那个隐藏的textarea的ID
var content = FCKeditorAPI.GetInstance("textarea_id").GetXHTML();
0 请登录后投票
   发表时间:2007-08-27  
嗯?点一下就发重了
0 请登录后投票
   发表时间:2007-09-05  
我在ruby on rails 中用了ajax和FCKEditor,也出现和foxty 差不多的问题,<form id="t_form" name="t_form" onsubmit="new Ajax.Updater('ajax_new_result', '/topic/create_next', {asynchronous:true, evalScripts:true, onComplete:function(request){document.getElementById('ajax_new_result').innerHTML=request.responseText;hide_loading('t_form-loading',['t_form-submit'])}, onLoading:function(request){show_loading('t_form-loading',['t_form-submit']);}, parameters:Form.serialize(this)}); return false;"
     action="/topic/create_next" method="post" ENCTYPE="multipart/form-data">
我那个onsubmit直接用在 ajax上 要搞两次提交麻烦了 
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics