AutorÃa | Ultima modificación | Ver Log |
YUI.add('createlink-base', function (Y, NAME) {/*** Adds prompt style link creation. Adds an override for the* <a href="Plugin.ExecCommand.html#method_COMMANDS.createlink">createlink execCommand</a>.* @class Plugin.CreateLinkBase* @static* @submodule createlink-base* @module editor*/var CreateLinkBase = {};/*** Strings used by the plugin* @property STRINGS* @static*/CreateLinkBase.STRINGS = {/*** String used for the Prompt* @property PROMPT* @static*/PROMPT: 'Please enter the URL for the link to point to:',/*** String used as the default value of the Prompt* @property DEFAULT* @static*/DEFAULT: 'http://'};Y.namespace('Plugin');Y.Plugin.CreateLinkBase = CreateLinkBase;Y.mix(Y.Plugin.ExecCommand.COMMANDS, {/*** Override for the createlink method from the <a href="Plugin.CreateLinkBase.html">CreateLinkBase</a> plugin.* @for Plugin.ExecCommand.COMMANDS* @method createlink* @static* @param {String} cmd The command executed: createlink* @return {Node} Node instance of the item touched by this command.*/createlink: function(cmd) {var inst = this.get('host').getInstance(), out, a, sel, holder,url = prompt(CreateLinkBase.STRINGS.PROMPT, CreateLinkBase.STRINGS.DEFAULT);if (url) {holder = inst.config.doc.createElement('div');url = url.replace(/"/g, '').replace(/'/g, ''); //Remove single & double quotesurl = inst.config.doc.createTextNode(url);holder.appendChild(url);url = holder.innerHTML;this.get('host')._execCommand(cmd, url);sel = new inst.EditorSelection();out = sel.getSelected();if (!sel.isCollapsed && out.size()) {//We have a selectiona = out.item(0).one('a');if (a) {out.item(0).replace(a);}if (Y.UA.gecko) {if (a.get('parentNode').test('span')) {if (a.get('parentNode').one('br.yui-cursor')) {a.get('parentNode').insert(a, 'before');}}}} else {//No selection, insert a new node..this.get('host').execCommand('inserthtml', '<a href="' + url + '">' + url + '</a>');}}return a;}});}, '3.18.1', {"requires": ["editor-base"]});