exec-command.js revision 09c638a157dd9d2ed9027215d9e254badfa019b8
1525N/A * Plugin for the frame module to handle execCommands for Editor 1525N/A * @class Plugin.ExecCommand 1525N/A * An internal reference to the keyCode of the last key that was pressed. 1525N/A * An internal reference to the instance of the frame plugged into. 1525N/A * Execute a command on the frame's document. 1525N/A * @param {String} action The action to perform (bold, italic, fontname) 1525N/A * @param {String} value The optional value (helvetica) 1525N/A * The private version of execCommand that doesn't filter for overrides. 1525N/A * @param {String} action The action to perform (bold, italic, fontname) 1525N/A * @param {String} value The optional value (helvetica) Y.
log(
'Internal execCommand(' +
action +
'): "' +
value +
'"',
'info',
'exec-command');
* Get's the instance of YUI bound to the parent frame * @return {YUI} The YUI instance bound to the parent frame this.
get(
'host').
on(
'dom:keypress', Y.
bind(
function(e) {
* Static object literal of execCommand overrides * Wraps the content with a new element of type (tag) * @param {String} cmd The command executed: wrap * @param {String} tag The tag to wrap the selection with * @return {NodeList} NodeList of the items touched by this command. * Inserts the provided HTML at the cursor, should be a single element. * @method COMMANDS.inserthtml * @param {String} cmd The command executed: inserthtml * @param {String} html The html to insert * @return {Node} Node instance of the item touched by this command. * Inserts the provided HTML at the cursor, and focuses the cursor afterwards. * @method COMMANDS.insertandfocus * @param {String} cmd The command executed: insertandfocus * @param {String} html The html to insert * @return {Node} Node instance of the item touched by this command. * Inserts a BR at the current cursor position * @method COMMANDS.insertbr * @param {String} cmd The command executed: insertbr q = (Y.
UA.
webkit) ?
'span.Apple-style-span,var' :
'var';
if (n.
get(
'innerHTML') ===
'|') {
* Inserts an image at the cursor position * @method COMMANDS.insertimage * @param {String} cmd The command executed: insertimage * @param {String} img The url of the image to be inserted * @return {Node} Node instance of the item touched by this command. return this.
command(
'inserthtml',
'<img src="' +
img +
'">');
* Add a class to all of the elements in the selection * @method COMMANDS.addclass * @param {String} cmd The command executed: addclass * @param {String} cls The className to add * @return {NodeList} NodeList of the items touched by this command. * Remove a class from all of the elements in the selection * @method COMMANDS.removeclass * @param {String} cmd The command executed: removeclass * @param {String} cls The className to remove * @return {NodeList} NodeList of the items touched by this command. * Adds a forecolor to the current selection, or creates a new element and applies it * @method COMMANDS.forecolor * @param {String} cmd The command executed: forecolor * @param {String} val The color value to apply * @return {NodeList} NodeList of the items touched by this command. * Adds a background color to the current selection, or creates a new element and applies it * @method COMMANDS.backcolor * @param {String} cmd The command executed: backcolor * @param {String} val The color value to apply * @return {NodeList} NodeList of the items touched by this command. * Sugar method, calles backcolor * @method COMMANDS.hilitecolor * @param {String} cmd The command executed: backcolor * @param {String} val The color value to apply * @return {NodeList} NodeList of the items touched by this command. * Adds a font name to the current selection, or creates a new element and applies it * @method COMMANDS.fontname2 * @param {String} cmd The command executed: fontname * @param {String} val The font name to apply * @return {NodeList} NodeList of the items touched by this command. * Adds a fontsize to the current selection, or creates a new element and applies it * @method COMMANDS.fontsize2 * @param {String} cmd The command executed: fontsize * @param {String} val The font size to apply * @return {NodeList} NodeList of the items touched by this command. * Overload for COMMANDS.list * @method COMMANDS.insertorderedlist * @param {String} cmd The command executed: list, ul * Overload for COMMANDS.list * @method COMMANDS.insertunorderedlist * @param {String} cmd The command executed: list, ol * @param {String} cmd The command executed: list (not used) * @param {String} tag The tag to deal with DIR =
'dir',
cls =
'yui3-touched',
dir,
range,
div,
elm, n,
str, s,
par,
list,
lis,
cmd =
'insert' + ((
tag ===
'ul') ?
'un' :
'') +
'orderedlist';
str += l.
get(
'innerHTML') +
'<br>';
if (n.
get(
'parentNode').
test(
'div')) {
list =
'<' +
tag +
' id="ie-list">';
list +=
'<li>' + v +
'</li>';
* Noramlizes alignment for Webkit Browsers * @method COMMANDS.justify * @param {String} cmd The command executed: justify (not used) * @param {String} val The actual command from the justify{center,all,left,right} stubs * Override method for COMMANDS.justify * @method COMMANDS.justifycenter this.
command(
'justify',
'justifycenter');
* Override method for COMMANDS.justify * @method COMMANDS.justifyleft this.
command(
'justify',
'justifyleft');
* Override method for COMMANDS.justify * @method COMMANDS.justifyright this.
command(
'justify',
'justifyright');
* Override method for COMMANDS.justify * @method COMMANDS.justifyfull this.
command(
'justify',
'justifyfull');
* This method is meant to normalize IE's in ability to exec the proper command on elements with CSS styling. * @param {String} cmd The command to execute * @param {String} tag The tag to create * @param {String} rule The rule that we are looking for. fixIETags.
call(
this,
'underline',
'u',
'TEXT-DECORATION: underline');