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)
