aboutsummaryrefslogtreecommitdiffstats
path: root/library/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js
diff options
context:
space:
mode:
Diffstat (limited to 'library/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js')
-rw-r--r--[-rwxr-xr-x]library/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js13
1 files changed, 10 insertions, 3 deletions
diff --git a/library/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js b/library/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js
index 7fe781055..2940db359 100755..100644
--- a/library/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js
+++ b/library/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js
@@ -19,16 +19,23 @@ var AnchorDialog = {
update : function() {
var ed = this.editor, elm, name = document.forms[0].anchorName.value;
+ if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) {
+ tinyMCEPopup.alert('advanced_dlg.anchor_invalid');
+ return;
+ }
+
tinyMCEPopup.restoreSelection();
if (this.action != 'update')
ed.selection.collapse(1);
elm = ed.dom.getParent(ed.selection.getNode(), 'A');
- if (elm)
+ if (elm) {
+ elm.setAttribute('name', name);
elm.name = name;
- else
- ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, ''));
+ } else
+ // create with zero-sized nbsp so that in Webkit where anchor is on last line by itself caret cannot be placed after it
+ ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, '\uFEFF'));
tinyMCEPopup.close();
}