rails_kindeditor 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/uploaders/kindeditor/asset_uploader.rb +1 -1
- data/lib/rails_kindeditor/engine.rb +1 -1
- data/lib/rails_kindeditor/version.rb +1 -1
- data/rails_kindeditor.gemspec +0 -1
- data/vendor/assets/javascripts/kindeditor/kindeditor.js +122 -58
- data/vendor/assets/javascripts/kindeditor/lang/ar.js +16 -0
- data/vendor/assets/javascripts/kindeditor/lang/en.js +16 -0
- data/vendor/assets/javascripts/kindeditor/lang/zh_CN.js +23 -7
- data/vendor/assets/javascripts/kindeditor/lang/zh_TW.js +17 -1
- data/vendor/assets/javascripts/kindeditor/plugins/anchor/anchor.js +1 -1
- data/vendor/assets/javascripts/kindeditor/plugins/baidumap/baidumap.js +77 -0
- data/vendor/assets/javascripts/kindeditor/plugins/baidumap/map.html +43 -0
- data/vendor/assets/javascripts/kindeditor/plugins/code/prettify.css +13 -13
- data/vendor/assets/javascripts/kindeditor/plugins/code/prettify.js +28 -28
- data/vendor/assets/javascripts/kindeditor/plugins/filemanager/filemanager.js +1 -1
- data/vendor/assets/javascripts/kindeditor/plugins/filemanager/images/file-64.gif +0 -0
- data/vendor/assets/javascripts/kindeditor/plugins/filemanager/images/folder-64.gif +0 -0
- data/vendor/assets/javascripts/kindeditor/plugins/flash/flash.js +8 -4
- data/vendor/assets/javascripts/kindeditor/plugins/image/image.js +61 -40
- data/vendor/assets/javascripts/kindeditor/plugins/insertfile/insertfile.js +8 -5
- data/vendor/assets/javascripts/kindeditor/plugins/link/link.js +5 -5
- data/vendor/assets/javascripts/kindeditor/plugins/media/media.js +8 -3
- data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/image.png +0 -0
- data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/select-files-en.png +0 -0
- data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/select-files-zh_CN.png +0 -0
- data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/swfupload.swf +0 -0
- data/vendor/assets/javascripts/kindeditor/plugins/multiimage/multiimage.js +1368 -0
- data/vendor/assets/javascripts/kindeditor/plugins/table/table.js +2 -4
- data/vendor/assets/javascripts/kindeditor/plugins/template/html/1.html +13 -13
- data/vendor/assets/javascripts/kindeditor/plugins/template/html/2.html +41 -41
- data/vendor/assets/javascripts/kindeditor/plugins/template/html/3.html +35 -35
- data/vendor/assets/javascripts/kindeditor/themes/default/default.css +124 -5
- data/vendor/assets/javascripts/kindeditor/themes/default/default.png +0 -0
- data/vendor/assets/javascripts/kindeditor/themes/qq/editor.gif +0 -0
- data/vendor/assets/javascripts/kindeditor/themes/qq/qq.css +143 -0
- data/vendor/assets/javascripts/kindeditor/themes/simple/simple.css +100 -100
- metadata +12 -3
@@ -68,7 +68,7 @@ class Kindeditor::AssetUploader < CarrierWave::Uploader::Base
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def filename
|
71
|
-
@name ||= Time.now.to_s(:number)
|
71
|
+
@name ||= "#{Time.now.to_s(:number)}#{rand(100000)}"
|
72
72
|
"#{@name}#{File.extname(original_filename).downcase}" if original_filename
|
73
73
|
end
|
74
74
|
|
@@ -15,7 +15,7 @@ module RailsKindeditor
|
|
15
15
|
|
16
16
|
initializer "rails_kindeditor.simple_form_and_formtastic" do
|
17
17
|
require "rails_kindeditor/simple_form" if Object.const_defined?("SimpleForm")
|
18
|
-
require "
|
18
|
+
require "rails_kindeditor/formtastic" if Object.const_defined?("Formtastic")
|
19
19
|
end
|
20
20
|
|
21
21
|
initializer "rails_kindeditor.helper_and_builder" do
|
data/rails_kindeditor.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* @author Roddy <luolonghao@gmail.com>
|
6
6
|
* @website http://www.kindsoft.net/
|
7
7
|
* @licence http://www.kindsoft.net/license.php
|
8
|
-
* @version 4.
|
8
|
+
* @version 4.1.1 (2012-06-10)
|
9
9
|
*******************************************************************************/
|
10
10
|
(function (window, undefined) {
|
11
11
|
if (window.KindEditor) {
|
@@ -17,7 +17,7 @@ if (!window.console) {
|
|
17
17
|
if (!console.log) {
|
18
18
|
console.log = function () {};
|
19
19
|
}
|
20
|
-
var _VERSION = '4.
|
20
|
+
var _VERSION = '4.1.1 (2012-06-10)',
|
21
21
|
_ua = navigator.userAgent.toLowerCase(),
|
22
22
|
_IE = _ua.indexOf('msie') > -1 && _ua.indexOf('opera') == -1,
|
23
23
|
_GECKO = _ua.indexOf('gecko') > -1 && _ua.indexOf('khtml') == -1,
|
@@ -226,7 +226,7 @@ K.basePath = '/assets/kindeditor/'; //_getBasePath(); ##### Modified by Macrow #
|
|
226
226
|
K.options = {
|
227
227
|
designMode : true,
|
228
228
|
fullscreenMode : false,
|
229
|
-
filterMode :
|
229
|
+
filterMode : true,
|
230
230
|
wellFormatMode : true,
|
231
231
|
shadowMode : true,
|
232
232
|
loadStyleMode : true,
|
@@ -243,6 +243,7 @@ K.options = {
|
|
243
243
|
pasteType : 2,
|
244
244
|
dialogAlignType : 'page',
|
245
245
|
useContextmenu : true,
|
246
|
+
fullscreenShortcut : true,
|
246
247
|
bodyClass : 'ke-content',
|
247
248
|
indentChar : '\t',
|
248
249
|
cssPath : '',
|
@@ -251,13 +252,14 @@ K.options = {
|
|
251
252
|
minHeight : 100,
|
252
253
|
minChangeSize : 5,
|
253
254
|
items : [
|
254
|
-
'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'cut', 'copy', 'paste',
|
255
|
+
'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste',
|
255
256
|
'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
|
256
257
|
'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
|
257
258
|
'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/',
|
258
259
|
'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold',
|
259
|
-
'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image',
|
260
|
-
'flash', 'media', 'insertfile', 'table', 'hr', 'emoticons', '
|
260
|
+
'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage',
|
261
|
+
'flash', 'media', 'insertfile', 'table', 'hr', 'emoticons', 'baidumap', 'pagebreak',
|
262
|
+
'anchor', 'link', 'unlink', '|', 'about'
|
261
263
|
],
|
262
264
|
noDisableItems : ['source', 'fullscreen'],
|
263
265
|
colorTable : [
|
@@ -634,6 +636,7 @@ function _formatCss(css) {
|
|
634
636
|
}
|
635
637
|
function _formatUrl(url, mode, host, pathname) {
|
636
638
|
mode = _undef(mode, '').toLowerCase();
|
639
|
+
url = url.replace(/([^:])\/\//g, '$1/');
|
637
640
|
if (_inArray(mode, ['absolute', 'relative', 'domain']) < 0) {
|
638
641
|
return url;
|
639
642
|
}
|
@@ -724,7 +727,7 @@ function _formatHtml(html, htmlTags, urlType, wellFormatted, indentChar) {
|
|
724
727
|
html = html.replace(/(<(?:style|style\s[^>]*)>)([\s\S]*?)(<\/style>)/ig, '');
|
725
728
|
}
|
726
729
|
}
|
727
|
-
var re = /(\
|
730
|
+
var re = /([ \t\n\r]*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>([ \t\n\r]*)/g;
|
728
731
|
var tagStack = [];
|
729
732
|
html = html.replace(re, function($0, $1, $2, $3, $4, $5, $6) {
|
730
733
|
var full = $0,
|
@@ -925,6 +928,19 @@ function _mediaImg(blankPath, attrs) {
|
|
925
928
|
html += 'data-ke-tag="' + escape(srcTag) + '" alt="" />';
|
926
929
|
return html;
|
927
930
|
}
|
931
|
+
function _tmpl(str, data) {
|
932
|
+
var fn = new Function("obj",
|
933
|
+
"var p=[],print=function(){p.push.apply(p,arguments);};" +
|
934
|
+
"with(obj){p.push('" +
|
935
|
+
str.replace(/[\r\t\n]/g, " ")
|
936
|
+
.split("<%").join("\t")
|
937
|
+
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
|
938
|
+
.replace(/\t=(.*?)%>/g, "',$1,'")
|
939
|
+
.split("\t").join("');")
|
940
|
+
.split("%>").join("p.push('")
|
941
|
+
.split("\r").join("\\'") + "');}return p.join('');");
|
942
|
+
return data ? fn(data) : fn;
|
943
|
+
}
|
928
944
|
K.formatUrl = _formatUrl;
|
929
945
|
K.formatHtml = _formatHtml;
|
930
946
|
K.getCssList = _getCssList;
|
@@ -934,6 +950,7 @@ K.mediaAttrs = _mediaAttrs;
|
|
934
950
|
K.mediaEmbed = _mediaEmbed;
|
935
951
|
K.mediaImg = _mediaImg;
|
936
952
|
K.clearMsWord = _clearMsWord;
|
953
|
+
K.tmpl = _tmpl;
|
937
954
|
function _contains(nodeA, nodeB) {
|
938
955
|
if (nodeA.nodeType == 9 && nodeB.nodeType != 9) {
|
939
956
|
return true;
|
@@ -1249,10 +1266,15 @@ function KNode(node) {
|
|
1249
1266
|
_extend(KNode, {
|
1250
1267
|
init : function(node) {
|
1251
1268
|
var self = this;
|
1269
|
+
node = _isArray(node) ? node : [node];
|
1270
|
+
var length = 0;
|
1252
1271
|
for (var i = 0, len = node.length; i < len; i++) {
|
1253
|
-
|
1272
|
+
if (node[i]) {
|
1273
|
+
self[i] = node[i].constructor === KNode ? node[i][0] : node[i];
|
1274
|
+
length++;
|
1275
|
+
}
|
1254
1276
|
}
|
1255
|
-
self.length =
|
1277
|
+
self.length = length;
|
1256
1278
|
self.doc = _getDoc(self[0]);
|
1257
1279
|
self.name = _getNodeName(self[0]);
|
1258
1280
|
self.type = self.length > 0 ? self[0].nodeType : null;
|
@@ -1329,7 +1351,7 @@ _extend(KNode, {
|
|
1329
1351
|
if (this.length < 1) {
|
1330
1352
|
return null;
|
1331
1353
|
}
|
1332
|
-
return new KNode(
|
1354
|
+
return this[i] ? new KNode(this[i]) : null;
|
1333
1355
|
},
|
1334
1356
|
hasClass : function(cls) {
|
1335
1357
|
if (this.length < 1) {
|
@@ -1479,7 +1501,7 @@ _extend(KNode, {
|
|
1479
1501
|
if (this.length < 1) {
|
1480
1502
|
return new KNode([]);
|
1481
1503
|
}
|
1482
|
-
return new KNode(
|
1504
|
+
return new KNode(this[0].cloneNode(bool));
|
1483
1505
|
},
|
1484
1506
|
append : function(expr) {
|
1485
1507
|
this.each(function() {
|
@@ -1601,28 +1623,28 @@ _extend(KNode, {
|
|
1601
1623
|
return null;
|
1602
1624
|
}
|
1603
1625
|
var node = this[0].parentNode;
|
1604
|
-
return node ? new KNode(
|
1626
|
+
return node ? new KNode(node) : null;
|
1605
1627
|
},
|
1606
1628
|
children : function() {
|
1607
1629
|
if (this.length < 1) {
|
1608
|
-
return [];
|
1630
|
+
return new KNode([]);
|
1609
1631
|
}
|
1610
1632
|
var list = [], child = this[0].firstChild;
|
1611
1633
|
while (child) {
|
1612
1634
|
if (child.nodeType != 3 || _trim(child.nodeValue) !== '') {
|
1613
|
-
list.push(
|
1635
|
+
list.push(child);
|
1614
1636
|
}
|
1615
1637
|
child = child.nextSibling;
|
1616
1638
|
}
|
1617
|
-
return list;
|
1639
|
+
return new KNode(list);
|
1618
1640
|
},
|
1619
1641
|
first : function() {
|
1620
1642
|
var list = this.children();
|
1621
|
-
return list.length > 0 ? list
|
1643
|
+
return list.length > 0 ? list.eq(0) : null;
|
1622
1644
|
},
|
1623
1645
|
last : function() {
|
1624
1646
|
var list = this.children();
|
1625
|
-
return list.length > 0 ? list
|
1647
|
+
return list.length > 0 ? list.eq(list.length - 1) : null;
|
1626
1648
|
},
|
1627
1649
|
index : function() {
|
1628
1650
|
if (this.length < 1) {
|
@@ -1640,14 +1662,14 @@ _extend(KNode, {
|
|
1640
1662
|
return null;
|
1641
1663
|
}
|
1642
1664
|
var node = this[0].previousSibling;
|
1643
|
-
return node ? new KNode(
|
1665
|
+
return node ? new KNode(node) : null;
|
1644
1666
|
},
|
1645
1667
|
next : function() {
|
1646
1668
|
if (this.length < 1) {
|
1647
1669
|
return null;
|
1648
1670
|
}
|
1649
1671
|
var node = this[0].nextSibling;
|
1650
|
-
return node ? new KNode(
|
1672
|
+
return node ? new KNode(node) : null;
|
1651
1673
|
},
|
1652
1674
|
scan : function(fn, order) {
|
1653
1675
|
if (this.length < 1) {
|
@@ -2095,7 +2117,7 @@ _extend(KRange, {
|
|
2095
2117
|
}
|
2096
2118
|
var children = knode.children();
|
2097
2119
|
if (children.length > 0) {
|
2098
|
-
return this.setStartBefore(children[0]
|
2120
|
+
return this.setStartBefore(children[0]).setEndAfter(children[children.length - 1]);
|
2099
2121
|
}
|
2100
2122
|
return this.setStart(node, 0).setEnd(node, 0);
|
2101
2123
|
},
|
@@ -2281,10 +2303,10 @@ _extend(KRange, {
|
|
2281
2303
|
}
|
2282
2304
|
var left, right, child, offset;
|
2283
2305
|
if (pos > 0) {
|
2284
|
-
left = children
|
2306
|
+
left = children.eq(pos - 1);
|
2285
2307
|
}
|
2286
2308
|
if (pos < children.length) {
|
2287
|
-
right = children
|
2309
|
+
right = children.eq(pos);
|
2288
2310
|
}
|
2289
2311
|
if (left && left.type == 3) {
|
2290
2312
|
child = left[0];
|
@@ -3454,9 +3476,14 @@ function _iframeDoc(iframe) {
|
|
3454
3476
|
iframe = _get(iframe);
|
3455
3477
|
return iframe.contentDocument || iframe.contentWindow.document;
|
3456
3478
|
}
|
3479
|
+
var html, _direction = '';
|
3480
|
+
if ((html = document.getElementsByTagName('html'))) {
|
3481
|
+
_direction = html[0].dir;
|
3482
|
+
}
|
3457
3483
|
function _getInitHtml(themesPath, bodyClass, cssPath, cssData) {
|
3458
3484
|
var arr = [
|
3459
|
-
'<html
|
3485
|
+
(_direction === '' ? '<html>' : '<html dir="' + _direction + '">'),
|
3486
|
+
'<head><meta charset="utf-8" /><title></title>',
|
3460
3487
|
'<style>',
|
3461
3488
|
'html {margin:0;padding:0;}',
|
3462
3489
|
'body {margin:0;padding:5px;}',
|
@@ -3465,6 +3492,7 @@ function _getInitHtml(themesPath, bodyClass, cssPath, cssData) {
|
|
3465
3492
|
'p {margin:5px 0;}',
|
3466
3493
|
'table {border-collapse:collapse;}',
|
3467
3494
|
'img {border:0;}',
|
3495
|
+
'noscript {display:none;}',
|
3468
3496
|
'table.ke-zeroborder td {border:1px dotted #AAA;}',
|
3469
3497
|
'img.ke-flash {',
|
3470
3498
|
' border:1px solid #AAA;',
|
@@ -3495,7 +3523,7 @@ function _getInitHtml(themesPath, bodyClass, cssPath, cssData) {
|
|
3495
3523
|
' width:16px;',
|
3496
3524
|
' height:16px;',
|
3497
3525
|
'}',
|
3498
|
-
'.ke-script {',
|
3526
|
+
'.ke-script, .ke-noscript {',
|
3499
3527
|
' display:none;',
|
3500
3528
|
' font-size:0;',
|
3501
3529
|
' width:0;',
|
@@ -4037,27 +4065,34 @@ _extend(KUploadButton, {
|
|
4037
4065
|
fieldName = options.fieldName || 'file',
|
4038
4066
|
url = options.url || '',
|
4039
4067
|
title = button.val(),
|
4068
|
+
extraParams = options.extraParams || {},
|
4040
4069
|
cls = button[0].className || '',
|
4041
|
-
target = 'kindeditor_upload_iframe_' + new Date().getTime();
|
4070
|
+
target = options.target || 'kindeditor_upload_iframe_' + new Date().getTime();
|
4042
4071
|
options.afterError = options.afterError || function(str) {
|
4043
4072
|
alert(str);
|
4044
4073
|
};
|
4074
|
+
var hiddenElements = [];
|
4075
|
+
for(var k in extraParams){
|
4076
|
+
hiddenElements.push('<input type="hidden" name="' + k + '" value="' + extraParams[k] + '" />');
|
4077
|
+
}
|
4045
4078
|
var html = [
|
4046
4079
|
'<div class="ke-inline-block ' + cls + '">',
|
4047
|
-
'<iframe name="' + target + '" style="display:none;"></iframe>',
|
4048
|
-
'<form class="ke-upload-area ke-form" method="post" enctype="multipart/form-data" target="' + target + '" action="' + url + '">',
|
4080
|
+
(options.target ? '' : '<iframe name="' + target + '" style="display:none;"></iframe>'),
|
4081
|
+
(options.form ? '<div class="ke-upload-area">' : '<form class="ke-upload-area ke-form" method="post" enctype="multipart/form-data" target="' + target + '" action="' + url + '">'),
|
4049
4082
|
'<span class="ke-button-common">',
|
4083
|
+
hiddenElements.join(''),
|
4050
4084
|
'<input type="button" class="ke-button-common ke-button" value="' + title + '" />',
|
4051
4085
|
'</span>',
|
4052
4086
|
'<input type="file" class="ke-upload-file" name="' + fieldName + '" tabindex="-1" />',
|
4053
|
-
'</
|
4087
|
+
(options.form ? '</div>' : '</form>'),
|
4088
|
+
'</div>'].join('');
|
4054
4089
|
var div = K(html, button.doc);
|
4055
4090
|
button.hide();
|
4056
4091
|
button.before(div);
|
4057
4092
|
self.div = div;
|
4058
4093
|
self.button = button;
|
4059
|
-
self.iframe = K('iframe', div);
|
4060
|
-
self.form = K('form', div);
|
4094
|
+
self.iframe = options.target ? K('iframe[name="' + target + '"]') : K('iframe', div);
|
4095
|
+
self.form = options.form ? K(options.form) : K('form', div);
|
4061
4096
|
var width = options.width || K('.ke-button-common', div).width();
|
4062
4097
|
self.fileBox = K('.ke-upload-file', div).width(width);
|
4063
4098
|
self.options = options;
|
@@ -4195,6 +4230,7 @@ _extend(KDialog, KWidget, {
|
|
4195
4230
|
self.footerDiv = footerDiv;
|
4196
4231
|
self.bodyDiv = bodyDiv;
|
4197
4232
|
self.headerDiv = headerDiv;
|
4233
|
+
self.isLoading = false;
|
4198
4234
|
},
|
4199
4235
|
setMaskIndex : function(z) {
|
4200
4236
|
var self = this;
|
@@ -4207,11 +4243,13 @@ _extend(KDialog, KWidget, {
|
|
4207
4243
|
.width(body.width()).height(body.height())
|
4208
4244
|
.css('top', self.headerDiv.height() + 'px');
|
4209
4245
|
body.css('visibility', 'hidden').after(self.loading);
|
4246
|
+
self.isLoading = true;
|
4210
4247
|
return self;
|
4211
4248
|
},
|
4212
4249
|
hideLoading : function() {
|
4213
4250
|
this.loading && this.loading.remove();
|
4214
4251
|
this.bodyDiv.css('visibility', 'visible');
|
4252
|
+
this.isLoading = false;
|
4215
4253
|
return this;
|
4216
4254
|
},
|
4217
4255
|
remove : function() {
|
@@ -4490,7 +4528,7 @@ function _bindNewlineEvent() {
|
|
4490
4528
|
if (_GECKO && _V < 3 && newlineTag !== 'p') {
|
4491
4529
|
return;
|
4492
4530
|
}
|
4493
|
-
if (_OPERA) {
|
4531
|
+
if (_OPERA && _V < 9) {
|
4494
4532
|
return;
|
4495
4533
|
}
|
4496
4534
|
var brSkipTagMap = _toMap('h1,h2,h3,h4,h5,h6,pre,li'),
|
@@ -4516,7 +4554,7 @@ function _bindNewlineEvent() {
|
|
4516
4554
|
}
|
4517
4555
|
if (newlineTag === 'br' && !brSkipTagMap[tagName]) {
|
4518
4556
|
e.preventDefault();
|
4519
|
-
self.insertHtml('<br />');
|
4557
|
+
self.insertHtml('<br />' + (_IE && _V < 9 ? '' : '\u200B'));
|
4520
4558
|
return;
|
4521
4559
|
}
|
4522
4560
|
if (!pSkipTagMap[tagName]) {
|
@@ -4650,6 +4688,13 @@ function KEditor(options) {
|
|
4650
4688
|
setOption(key, val);
|
4651
4689
|
}
|
4652
4690
|
});
|
4691
|
+
var se = K(self.srcElement || '<textarea/>');
|
4692
|
+
if (!self.width) {
|
4693
|
+
self.width = se[0].style.width || se.width();
|
4694
|
+
}
|
4695
|
+
if (!self.height) {
|
4696
|
+
self.height = se[0].style.height || se.height();
|
4697
|
+
}
|
4653
4698
|
setOption('width', _undef(self.width, self.minWidth));
|
4654
4699
|
setOption('height', _undef(self.height, self.minHeight));
|
4655
4700
|
setOption('width', _addUnit(self.width));
|
@@ -4657,7 +4702,6 @@ function KEditor(options) {
|
|
4657
4702
|
if (_MOBILE && (!_IOS || _V < 534)) {
|
4658
4703
|
self.designMode = false;
|
4659
4704
|
}
|
4660
|
-
var se = K(self.srcElement || '<textarea/>');
|
4661
4705
|
self.srcElement = se;
|
4662
4706
|
self.initContent = '';
|
4663
4707
|
self.plugin = {};
|
@@ -5251,6 +5295,7 @@ KEditor.prototype = {
|
|
5251
5295
|
function _editor(options) {
|
5252
5296
|
return new KEditor(options);
|
5253
5297
|
}
|
5298
|
+
_instances = [];
|
5254
5299
|
function _create(expr, options) {
|
5255
5300
|
options = options || {};
|
5256
5301
|
options.basePath = _undef(options.basePath, K.basePath);
|
@@ -5272,19 +5317,20 @@ function _create(expr, options) {
|
|
5272
5317
|
if (!knode) {
|
5273
5318
|
return;
|
5274
5319
|
}
|
5275
|
-
|
5276
|
-
|
5277
|
-
|
5278
|
-
|
5279
|
-
|
5280
|
-
options.height = knode[0].style.height || knode.height();
|
5320
|
+
if (knode.length > 1) {
|
5321
|
+
knode.each(function() {
|
5322
|
+
_create(this, options);
|
5323
|
+
});
|
5324
|
+
return _instances[0];
|
5281
5325
|
}
|
5326
|
+
options.srcElement = knode[0];
|
5282
5327
|
var editor = new KEditor(options);
|
5328
|
+
_instances.push(editor);
|
5283
5329
|
if (_language[editor.langType]) {
|
5284
5330
|
return create(editor);
|
5285
5331
|
}
|
5286
5332
|
_loadScript(editor.langPath + editor.langType + '.js?ver=' + encodeURIComponent(K.DEBUG ? _TIME : _VERSION), function() {
|
5287
|
-
|
5333
|
+
create(editor);
|
5288
5334
|
});
|
5289
5335
|
return editor;
|
5290
5336
|
}
|
@@ -5294,6 +5340,7 @@ if (_IE && _V < 7) {
|
|
5294
5340
|
K.EditorClass = KEditor;
|
5295
5341
|
K.editor = _editor;
|
5296
5342
|
K.create = _create;
|
5343
|
+
K.instances = _instances;
|
5297
5344
|
K.plugin = _plugin;
|
5298
5345
|
K.lang = _lang;
|
5299
5346
|
_plugin('core', function(K) {
|
@@ -5355,25 +5402,27 @@ _plugin('core', function(K) {
|
|
5355
5402
|
self.clickToolbar('fullscreen', function() {
|
5356
5403
|
self.fullscreen();
|
5357
5404
|
});
|
5358
|
-
|
5359
|
-
|
5360
|
-
|
5361
|
-
|
5362
|
-
|
5363
|
-
|
5364
|
-
|
5405
|
+
if (self.fullscreenShortcut) {
|
5406
|
+
var loaded = false;
|
5407
|
+
self.afterCreate(function() {
|
5408
|
+
K(self.edit.doc, self.edit.textarea).keyup(function(e) {
|
5409
|
+
if (e.which == 27) {
|
5410
|
+
setTimeout(function() {
|
5411
|
+
self.fullscreen();
|
5412
|
+
}, 0);
|
5413
|
+
}
|
5414
|
+
});
|
5415
|
+
if (loaded) {
|
5416
|
+
if (_IE && !self.designMode) {
|
5417
|
+
return;
|
5418
|
+
}
|
5419
|
+
self.focus();
|
5365
5420
|
}
|
5366
|
-
|
5367
|
-
|
5368
|
-
if (_IE && !self.designMode) {
|
5369
|
-
return;
|
5421
|
+
if (!loaded) {
|
5422
|
+
loaded = true;
|
5370
5423
|
}
|
5371
|
-
|
5372
|
-
|
5373
|
-
if (!loaded) {
|
5374
|
-
loaded = true;
|
5375
|
-
}
|
5376
|
-
});
|
5424
|
+
});
|
5425
|
+
}
|
5377
5426
|
_each('undo,redo'.split(','), function(i, name) {
|
5378
5427
|
if (shortcutKeys[name]) {
|
5379
5428
|
self.afterCreate(function() {
|
@@ -5575,6 +5624,12 @@ _plugin('core', function(K) {
|
|
5575
5624
|
K(this).after('<br />').remove(true);
|
5576
5625
|
});
|
5577
5626
|
K('span.Apple-style-span', div).remove(true);
|
5627
|
+
K('span.Apple-tab-span', div).remove(true);
|
5628
|
+
K('span[style]', div).each(function() {
|
5629
|
+
if (K(this).css('white-space') == 'nowrap') {
|
5630
|
+
K(this).remove(true);
|
5631
|
+
}
|
5632
|
+
});
|
5578
5633
|
K('meta', div).remove();
|
5579
5634
|
}
|
5580
5635
|
var html = div[0].innerHTML;
|
@@ -5646,7 +5701,10 @@ _plugin('core', function(K) {
|
|
5646
5701
|
});
|
5647
5702
|
});
|
5648
5703
|
self.beforeGetHtml(function(html) {
|
5649
|
-
return html.replace(
|
5704
|
+
return html.replace(/(<(?:noscript|noscript\s[^>]*)>)([\s\S]*?)(<\/noscript>)/ig, function($0, $1, $2, $3) {
|
5705
|
+
return $1 + _unescape($2).replace(/\s+/g, ' ') + $3;
|
5706
|
+
})
|
5707
|
+
.replace(/<img[^>]*class="?ke-(flash|rm|media)"?[^>]*>/ig, function(full) {
|
5650
5708
|
var imgAttrs = _getAttrList(full),
|
5651
5709
|
styles = _getCssList(imgAttrs.style || ''),
|
5652
5710
|
attrs = _mediaAttrs(imgAttrs['data-ke-tag']);
|
@@ -5661,6 +5719,9 @@ _plugin('core', function(K) {
|
|
5661
5719
|
.replace(/<div\s+[^>]*data-ke-script-attr="([^"]*)"[^>]*>([\s\S]*?)<\/div>/ig, function(full, attr, code) {
|
5662
5720
|
return '<script' + unescape(attr) + '>' + unescape(code) + '</script>';
|
5663
5721
|
})
|
5722
|
+
.replace(/<div\s+[^>]*data-ke-noscript-attr="([^"]*)"[^>]*>([\s\S]*?)<\/div>/ig, function(full, attr, code) {
|
5723
|
+
return '<noscript' + unescape(attr) + '>' + unescape(code) + '</noscript>';
|
5724
|
+
})
|
5664
5725
|
.replace(/(<[^>]*)data-ke-src="([^"]*)"([^>]*>)/ig, function(full, start, src, end) {
|
5665
5726
|
full = full.replace(/(\s+(?:href|src)=")[^"]*(")/i, '$1' + src + '$2');
|
5666
5727
|
full = full.replace(/\s+data-ke-src="[^"]*"/i, '');
|
@@ -5688,6 +5749,9 @@ _plugin('core', function(K) {
|
|
5688
5749
|
.replace(/<script([^>]*)>([\s\S]*?)<\/script>/ig, function(full, attr, code) {
|
5689
5750
|
return '<div class="ke-script" data-ke-script-attr="' + escape(attr) + '">' + escape(code) + '</div>';
|
5690
5751
|
})
|
5752
|
+
.replace(/<noscript([^>]*)>([\s\S]*?)<\/noscript>/ig, function(full, attr, code) {
|
5753
|
+
return '<div class="ke-noscript" data-ke-noscript-attr="' + escape(attr) + '">' + escape(code) + '</div>';
|
5754
|
+
})
|
5691
5755
|
.replace(/(<[^>]*)(href|src)="([^"]*)"([^>]*>)/ig, function(full, start, key, src, end) {
|
5692
5756
|
if (full.match(/\sdata-ke-src="[^"]*"/i)) {
|
5693
5757
|
return full;
|