1 /** |
1 /** |
2 * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $ |
2 * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $ |
3 * |
3 * |
4 * @author Moxiecode |
4 * @author Moxiecode |
5 * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. |
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved. |
6 */ |
6 */ |
7 |
7 |
8 (function() { |
8 (function() { |
9 var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit; |
9 var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit; |
10 |
10 |
41 ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '<span id="_mce_tmp">XX</span>'); |
41 ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '<span id="_mce_tmp">XX</span>'); |
42 ed.selection.select(ed.dom.get('_mce_tmp')); |
42 ed.selection.select(ed.dom.get('_mce_tmp')); |
43 ed.getDoc().execCommand("Delete", false, ' '); |
43 ed.getDoc().execCommand("Delete", false, ' '); |
44 }); |
44 }); |
45 |
45 |
46 // Workaround for List ID bug, http://bugs.webkit.org/show_bug.cgi?id=16004 |
46 // Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973 |
47 /* function addList(c) { |
47 ed.onKeyPress.add(function(ed, e) { |
48 var cb = Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) { |
48 if (e.keyCode == 13 && e.shiftKey) { |
49 e = e.target; |
49 t._insertBR(ed); |
50 |
50 Event.cancel(e); |
51 if (e.nodeName == 'OL' || e.nodeName == 'UL') |
51 } |
52 e.id = ''; |
52 }); |
53 }); |
|
54 |
|
55 ed.getDoc().execCommand(c, false, false); |
|
56 Event.remove(ed.getDoc(), 'DOMNodeInserted', cb); |
|
57 }; |
|
58 |
|
59 ed.addCommand('InsertUnorderedList', function() {addList('InsertUnorderedList');}); |
|
60 ed.addCommand('InsertOrderedList', function() {addList('InsertOrderedList');});*/ |
|
61 |
53 |
62 // Safari returns incorrect values |
54 // Safari returns incorrect values |
63 ed.addQueryValueHandler('FontSize', function(u, v) { |
55 ed.addQueryValueHandler('FontSize', function(u, v) { |
64 var e, v; |
56 var e, v; |
65 |
57 |
390 each(b.childNodes, function(n) { |
382 each(b.childNodes, function(n) { |
391 r.insertNode(n.cloneNode(true)); |
383 r.insertNode(n.cloneNode(true)); |
392 }); |
384 }); |
393 } |
385 } |
394 }; |
386 }; |
|
387 }, |
|
388 |
|
389 _insertBR : function(ed) { |
|
390 var dom = ed.dom, s = ed.selection, r = s.getRng(), br; |
|
391 |
|
392 // Insert BR element |
|
393 r.insertNode(br = dom.create('br')); |
|
394 |
|
395 // Place caret after BR |
|
396 r.setStartAfter(br); |
|
397 r.setEndAfter(br); |
|
398 s.setRng(r); |
|
399 |
|
400 // Could not place caret after BR then insert an nbsp entity and move the caret |
|
401 if (s.getSel().focusNode == br.previousSibling) { |
|
402 s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br)); |
|
403 s.collapse(1); |
|
404 } |
|
405 |
|
406 // Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117 |
|
407 ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y); |
395 } |
408 } |
396 }); |
409 }); |
397 |
410 |
398 // Register plugin |
411 // Register plugin |
399 tinymce.PluginManager.add('safari', tinymce.plugins.Safari); |
412 tinymce.PluginManager.add('safari', tinymce.plugins.Safari); |