yui3 rich text editor

21
YUI3 Rich-Editor 2010-11-17 乌龙茶

Upload: liuzhitao2000

Post on 20-Jan-2015

1.779 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: yui3 rich text editor

YUI3 Rich-Editor

2010-11-17 乌龙茶

Page 2: yui3 rich text editor

Create Rich-text Editor

• Iframe. designMode = ‘on’

• otherElement. contentEditable = "true“

• execCommand – Bold createLink delete formatBlock forwardDelete insertImage insertHTML

insertLineBreak insertOrderedList insertOrderedList insertParagraph insertText italic redo selectAll subscript superscript undo unlink unselect vendorID

https://developer.mozilla.org/en/Migrate_apps_from_Internet_Explorer_to_Mozilla#Rich_text_editing

Page 3: yui3 rich text editor

Example

http://kxt.koubei.com/labs/wulong/editor_simple.html

Page 4: yui3 rich text editor

Over! Q&A?

Page 5: yui3 rich text editor

YUI2 Editor

Page 6: yui3 rich text editor

YUI3 Editor

Page 7: yui3 rich text editor
Page 8: yui3 rich text editor

Editor-base

• getContent

• getInstance

• getDomPath

• ……

Page 9: yui3 rich text editor

Editor-Core-plugin

• Selection.js

• exec-command.js

• Frame.js

Page 10: yui3 rich text editor

Create Rich-text Editor - Range

if( window.getSelection ){

return document.createRange(); //W3C

}else{

return document.selection.createRange(); //IE

}

Page 11: yui3 rich text editor

Create Rich-text Editor - Range

if (window.getSelection){//W3C

var range = document.createRange(),

selection = window.getSelection();

range.setStart(selection.anchorNode, selection.anchorOffset);

range.setEnd(selection.focusNode, selection.focusOffset);

return range;

}else { //IE

return document.selection.createRange();

}

Page 13: yui3 rich text editor

Editor-mod-plugin

• List.js

• createLink.js

• tabs.js

• ……

Page 14: yui3 rich text editor

Create plugin - nodeChange

• changedEvent

• changedNode

• changedType

• Commands

• ……

Page 15: yui3 rich text editor

Example – ordered-list

if( e.changedType === 'enter' ) {

if ( e.changedNode.test('li , li *') ){

newLi = inst.Node.create('<li></li>');

}

}

Page 16: yui3 rich text editor

Create plugin - ExecCommand.COMMANDS

Y.mix(Y.Plugin.ExecCommand.COMMANDS, {

insertorderedlist : function(){

……

……

}

});

editor.execCommand('insertorderedlist');

Page 17: yui3 rich text editor

Create plugin - Step

var DoSomething = { … };

Y.namespace('Plugin');

Y.Plugin. DoSomething = DoSomething ;

Y.mix( Y.Plugin.ExecCommand.COMMANDS, {

dosomething : function(){

DoSomething.do();

…..

}

});

Page 18: yui3 rich text editor

Use plugin

var editor = new Y.EditorBase();

editor.plug(Y.Plugin.DoSomething);

editor.execCommand(‘dosomething');

Page 19: yui3 rich text editor

Example

http://kxt.koubei.com/k2/editor/demo/editor.php

Page 20: yui3 rich text editor
Page 21: yui3 rich text editor

Q & A