Cross Reference: /yui3/src/editor/docs/editor-exec.mustache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<div class="intro">
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<p>Creating and using custom ExecCommands.</p>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass</div>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<div class="example">
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass {{>editor-exec-source}}
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass</div>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<h3>Working with EditorBase</h3>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<p>`EditorBase` is not a fully functional Editor, it is simply the base utility that will be used under the hood to create an Editor.</p>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<h3>Creating the Editor</h3>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<p>In this step we are going to do the initial render of the Editor, set its content, and focus it when it's ready.</p>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav GlassYUI().use('editor', function(Y) {
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass //Create the Base Editor
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass var editor = new Y.EditorBase({
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass content: '<p><b>This is <i class="foo">a test</i></b></p><p><b style="color: red; font-family: Comic Sans MS">This is <span class="foo">a test</span></b></p>',
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass extracss: '.foo { font-weight: normal; color: black; background-color: yellow; }'
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass });
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass //Rendering the Editor.
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass editor.render('#editor');
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass});
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<h3>Registering a new execCommand</h3>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<p>ExecCommand overrides are stored on the `execCommand` plugin. This way, you can write a plugin for Editor and have it available
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glassto all Editor instances in your sandbox.</p>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<p>To create a new execCommand, we simply add an object literal to the `Y.Plugin.ExecCommand.COMMANDS` static object like this:</p>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav GlassY.mix(Y.Plugin.ExecCommand.COMMANDS, {
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass foo: function(cmd, val) {
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass logFn('You clicked on Foo');
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass var inst = this.getInstance();
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass inst.one('body').setStyle('backgroundColor', 'yellow');
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass }
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass});
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<p>Now we can use this new command like:</p>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glasseditor.execCommand('foo');
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<h3>Full Example Source</h3>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<h4>HTML</h4>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass{{>editor-exec-source-html}}
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<h4>CSS</h4>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass{{>editor-exec-source-css}}
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass<h4>Javascript</h4>
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass{{>editor-exec-source-js}}
3f2ac16886fbbccf85547608b11143a8795d8db4Dav Glass```