Updating Fckedtir coding phase1 sixth week
period : 2008/06/30~2008/07/06
- replace fckeditor with 2.6.2 version(recent)
safari also can clean up html code. fckeditor replace some kind of string such as '>' => '>'
- report relace unexpected string bug to fckeditor dev team
- fix link modification error. when modify exists link, javascript error occured because of fck api function changed with recent version.
update macro icon on toolbar with new syntax ( [ [ M ] ] ⇒ < < M > > )
- make select plugin works on IE.
- fix attachment plugin works on IE
- fix javascript error on attachment modification
- try to find how make automated unittest for moinmoin gui editor.
- fckeditor dev team already try to make editor's behavior test using selenium. but it seems like no more maintained. it doesn't changed about 5 month.
- fckeditor using jsunit for core api unittest. it's easy and powerful. but it's not for functionality test. anyway it's useful.
- add comment to select plugin
- reformatting select plugin code
how fckeditor initialize content
oDoc.body.innerHTML = this._BodyHTML ; (/classes/fckeditingarea.js) after this code data changed. this._BodyHTML had valid data. but when data go into dom tree it changed. after excuted this element is ready oDoc.body.Document.body.childNodes[9].childNodes[0].innerHTML this._BodyHTML came from /classes/fckeditingarea.js:84 this._BodyHTML = sBody ; it doesn't changed at that point. this._BodyHTML variable clean when execute below FCKEditingArea_CompleteStart.call( this.Window ) ; (/classes/fckeditingarea.js:177) ---> document data assigned. /classes/fckeditingarea.js:248 oDoc.body.innerHTML = this._BodyHTML ; already this._BodyHTML changed (> => >) ---> traceback FCK.EditingArea It assigned at /internals/fck.js:114 this.EditingArea = new FCKEditingArea( document.getElementById( 'xEditingArea' ) ) ; alert(this.EditingArea.Document.body.childNodes[9].childNodes[0].innerHTML); document data dosen't assigned yet. ---> FCK.EditorDocument = FCK.EditingArea.Document ; (/internals/fck.js:936) alert(FCK.EditorDocument.body.childNodes[9].childNodes[0].innerHTML); at this point. data changed. ---> call FCK.DataProcessor.ConvertToDataFormat with oDoc.body (first parameter) /internals/fck.js:252 oDoc = FCK.EditorDocument ---> ConverToDataFormat call FCKXHTML.GetXHTML (/classes/fckdataprocessor.js:100) ---> function FCKXHtml.GetXHTML if ( includeNode ) this._AppendNode( this.MainNode, node ) ; else this._AppendChildNodes( this.MainNode, node, false ) ; (/internals/fckxhtml.js:54) insert document to this.MainNode alert(A.childNodes[9].childNodes[0].innerHTML); with this method I can find <<TableOfContents()>> It means '>>' was converted before call this method ---> function FCKXHtml.GetXHTML var sXHTML = this._GetMainXmlString() ; (/internals/fckxhtml.js:60) get xhtml document using this.MainNode ---> function FCKXHtml._GetMainXmlString return ( new XMLSerializer() ).serializeToString( this.MainNode ) ;(/internals/fckxhtml_gecko.js:27)