当前位置: 代码迷 >> Web前端 >> CKEditor 中getData()和setData()中的有关问题
  详细解决方案

CKEditor 中getData()和setData()中的有关问题

热度:67   发布时间:2012-11-09 10:18:47.0
CKEditor 中getData()和setData()中的问题

今天写了一段代码:目的是向CKEditor中插入数据如下:

function insertSrc(srcArray){
			var i=0
			for (i=0;i<=srcArray.length;i++)
			{
				var oEditor = CKEDITOR.instances.articleContent;
                var editorData_old = oEditor.getData() ;
                var editorData_new = editorData_old.substring(0,editorData_old.indexOf('</head>'))
                + 
                srcArray[i]
                +  editorData_old.substring(editorData_old.indexOf('</head>')) ;
                oEditor.setData(editorData_new) ;
			}             
		}

?

经过调试发现该函数执行有问题,循环中后几个循环不能执行。原因就是CKEDITOR中的setData()方法是ajax异步的。

最终改写代码为:

function insertSrc(srcArray){
			var oEditor = CKEDITOR.instances.articleContent;
            var editorData_old = oEditor.getData() ;
			var old_begin = editorData_old.substring(0,editorData_old.indexOf('</head>')) ;
			var old_end =  editorData_old.substring(editorData_old.indexOf('</head>')) ;
			var insertData = '' ;
			for(var i=0;i<srcArray.length;i++)
			{
               	insertData = insertData + srcArray[i] ;
			}
			var editorData_new =old_begin + insertData + old_end ;
			oEditor.setData(editorData_new) ;
		}

?

注:我们应该知道CKEditor中getData()方法是正常的方法,而setData()方法是异步方法。

  相关解决方案