@lingxiteam/lcdp-ueditor-react 1.0.0-alpha.8 → 1.0.1

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.
Files changed (117) hide show
  1. package/es/LcdpUeditor.js +64 -61
  2. package/es/const.js +4 -4
  3. package/es/defaultConfig.json +76 -76
  4. package/es/tools/UeditorResourceLoader.js +11 -16
  5. package/es/tools/filterHtmlNode.d.ts +5 -0
  6. package/es/tools/filterHtmlNode.js +41 -0
  7. package/es/tools/loadScript.js +5 -7
  8. package/es/type.d.ts +6 -0
  9. package/lib/LcdpUeditor.js +18 -8
  10. package/lib/defaultConfig.json +76 -76
  11. package/lib/tools/filterHtmlNode.d.ts +5 -0
  12. package/lib/tools/filterHtmlNode.js +61 -0
  13. package/lib/type.d.ts +6 -0
  14. package/package.json +35 -34
  15. package/ueditor-resource/dialogs/anchor/anchor.html +62 -62
  16. package/ueditor-resource/dialogs/attachment/attachment.css +716 -716
  17. package/ueditor-resource/dialogs/attachment/attachment.html +61 -61
  18. package/ueditor-resource/dialogs/attachment/attachment.js +803 -803
  19. package/ueditor-resource/dialogs/audio/audio.css +879 -879
  20. package/ueditor-resource/dialogs/audio/audio.html +93 -93
  21. package/ueditor-resource/dialogs/audio/audio.js +815 -815
  22. package/ueditor-resource/dialogs/background/background.css +193 -193
  23. package/ueditor-resource/dialogs/background/background.html +59 -59
  24. package/ueditor-resource/dialogs/background/background.js +370 -370
  25. package/ueditor-resource/dialogs/contentimport/contentimport.html +176 -176
  26. package/ueditor-resource/dialogs/contentimport/contentimport.js +91 -91
  27. package/ueditor-resource/dialogs/emotion/emotion.css +129 -129
  28. package/ueditor-resource/dialogs/emotion/emotion.html +70 -70
  29. package/ueditor-resource/dialogs/emotion/emotion.js +186 -186
  30. package/ueditor-resource/dialogs/formula/formula.html +98 -98
  31. package/ueditor-resource/dialogs/formula/formula.js +147 -147
  32. package/ueditor-resource/dialogs/help/help.css +37 -37
  33. package/ueditor-resource/dialogs/help/help.html +82 -82
  34. package/ueditor-resource/dialogs/help/help.js +57 -57
  35. package/ueditor-resource/dialogs/image/image.css +768 -768
  36. package/ueditor-resource/dialogs/image/image.html +144 -144
  37. package/ueditor-resource/dialogs/image/image.js +1060 -1060
  38. package/ueditor-resource/dialogs/insertframe/insertframe.html +135 -135
  39. package/ueditor-resource/dialogs/internal.js +81 -81
  40. package/ueditor-resource/dialogs/link/link.html +148 -148
  41. package/ueditor-resource/dialogs/preview/preview.html +45 -45
  42. package/ueditor-resource/dialogs/scrawl/scrawl.css +324 -324
  43. package/ueditor-resource/dialogs/scrawl/scrawl.html +95 -95
  44. package/ueditor-resource/dialogs/scrawl/scrawl.js +682 -682
  45. package/ueditor-resource/dialogs/searchreplace/searchreplace.html +144 -144
  46. package/ueditor-resource/dialogs/searchreplace/searchreplace.js +174 -174
  47. package/ueditor-resource/dialogs/spechars/spechars.html +42 -42
  48. package/ueditor-resource/dialogs/spechars/spechars.js +86 -86
  49. package/ueditor-resource/dialogs/table/edittable.css +85 -85
  50. package/ueditor-resource/dialogs/table/edittable.html +69 -69
  51. package/ueditor-resource/dialogs/table/edittable.js +241 -241
  52. package/ueditor-resource/dialogs/table/edittd.html +62 -62
  53. package/ueditor-resource/dialogs/table/edittip.html +33 -33
  54. package/ueditor-resource/dialogs/template/config.js +42 -42
  55. package/ueditor-resource/dialogs/template/template.css +99 -99
  56. package/ueditor-resource/dialogs/template/template.html +26 -26
  57. package/ueditor-resource/dialogs/template/template.js +53 -53
  58. package/ueditor-resource/dialogs/video/video.css +909 -909
  59. package/ueditor-resource/dialogs/video/video.html +114 -114
  60. package/ueditor-resource/dialogs/video/video.js +867 -867
  61. package/ueditor-resource/dialogs/wordimage/wordimage.html +221 -221
  62. package/ueditor-resource/dialogs/wordimage/wordimage.js +93 -93
  63. package/ueditor-resource/lang/en/en.js +686 -686
  64. package/ueditor-resource/lang/zh-cn/zh-cn.js +748 -748
  65. package/ueditor-resource/lang/zh-tw/zh-tw.js +748 -748
  66. package/ueditor-resource/plugins/demo/demo.js +3 -3
  67. package/ueditor-resource/themes/default/css/ueditor.css +2148 -2148
  68. package/ueditor-resource/themes/default/dialog.css +17 -17
  69. package/ueditor-resource/themes/default/dialogbase.css +132 -132
  70. package/ueditor-resource/themes/default/exts/ai.svg +12 -12
  71. package/ueditor-resource/themes/default/exts/apk.svg +12 -12
  72. package/ueditor-resource/themes/default/exts/chm.svg +12 -12
  73. package/ueditor-resource/themes/default/exts/css.svg +12 -12
  74. package/ueditor-resource/themes/default/exts/doc.svg +22 -22
  75. package/ueditor-resource/themes/default/exts/docx.svg +22 -22
  76. package/ueditor-resource/themes/default/exts/dwg.svg +16 -16
  77. package/ueditor-resource/themes/default/exts/folder.svg +3 -3
  78. package/ueditor-resource/themes/default/exts/gif.svg +14 -14
  79. package/ueditor-resource/themes/default/exts/html.svg +12 -12
  80. package/ueditor-resource/themes/default/exts/jpeg.svg +14 -14
  81. package/ueditor-resource/themes/default/exts/jpg.svg +14 -14
  82. package/ueditor-resource/themes/default/exts/log.svg +12 -12
  83. package/ueditor-resource/themes/default/exts/mp3.svg +14 -14
  84. package/ueditor-resource/themes/default/exts/mp4.svg +12 -12
  85. package/ueditor-resource/themes/default/exts/pdf.svg +14 -14
  86. package/ueditor-resource/themes/default/exts/png.svg +14 -14
  87. package/ueditor-resource/themes/default/exts/ppt.svg +24 -24
  88. package/ueditor-resource/themes/default/exts/pptx.svg +24 -24
  89. package/ueditor-resource/themes/default/exts/psd.svg +12 -12
  90. package/ueditor-resource/themes/default/exts/rar.svg +12 -12
  91. package/ueditor-resource/themes/default/exts/svg.svg +12 -12
  92. package/ueditor-resource/themes/default/exts/torrent.svg +14 -14
  93. package/ueditor-resource/themes/default/exts/txt.svg +14 -14
  94. package/ueditor-resource/themes/default/exts/unknown.svg +12 -12
  95. package/ueditor-resource/themes/default/exts/xls.svg +25 -25
  96. package/ueditor-resource/themes/default/exts/xlsx.svg +25 -25
  97. package/ueditor-resource/themes/default/exts/zip.svg +12 -12
  98. package/ueditor-resource/themes/iframe.css +63 -63
  99. package/ueditor-resource/third-party/SyntaxHighlighter/shCore.js +3655 -3655
  100. package/ueditor-resource/third-party/clipboard/clipboard.js +752 -752
  101. package/ueditor-resource/third-party/codemirror/codemirror.css +106 -106
  102. package/ueditor-resource/third-party/codemirror/codemirror.js +3581 -3581
  103. package/ueditor-resource/third-party/jquery-3.5.1.js +1 -1
  104. package/ueditor-resource/third-party/jquery-3.5.1_1.js +4314 -4314
  105. package/ueditor-resource/third-party/webuploader/webuploader.css +88 -88
  106. package/ueditor-resource/third-party/webuploader/webuploader.js +3 -3
  107. package/ueditor-resource/third-party/zeroclipboard/ZeroClipboard.js +1255 -1255
  108. package/ueditor-resource/ueditor.all.js +5271 -5270
  109. package/ueditor-resource/ueditor.config.js +655 -656
  110. package/ueditor-resource/ueditor.parse.js +13 -13
  111. package/es/LcdpUeditor.d.ts.map +0 -1
  112. package/es/const.d.ts.map +0 -1
  113. package/es/index.d.ts.map +0 -1
  114. package/es/tools/UeditorResourceLoader.d.ts.map +0 -1
  115. package/es/tools/loadScript.d.ts.map +0 -1
  116. package/es/type.d.ts.map +0 -1
  117. package/ueditor-resource/index.html +0 -146
@@ -1,221 +1,221 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
- "http://www.w3.org/TR/html4/loose.dtd">
3
- <html>
4
- <head>
5
- <title></title>
6
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
7
- <script type="text/javascript" src="../internal.js?32939b8e"></script>
8
- <style type="text/css">
9
- .wrapper {
10
- width: 600px;
11
- padding: 10px;
12
- height: 352px;
13
- overflow: hidden;
14
- position: relative;
15
- border-bottom: 1px solid #d7d7d7
16
- }
17
-
18
- .wrapper .image-info {
19
- display: flex;
20
- align-items: center;
21
- }
22
-
23
- .wrapper .image-info .input {
24
- flex-grow: 1;
25
- display: flex;
26
- }
27
-
28
- .wrapper .image-info .input input {
29
- display: block;
30
- border: 1px solid #CCC;
31
- height: 23px;
32
- border-radius: 3px;
33
- flex-grow: 1;
34
- outline: none;
35
- }
36
-
37
- .wrapper .image-info .copy {
38
- width: 60px;
39
- cursor: pointer;
40
- margin: 0 5px;
41
- }
42
-
43
- .wrapper .image-info .copy div {
44
- height: 30px;
45
- font-size: 12px;
46
- line-height: 28px;
47
- cursor: pointer;
48
- border-radius: 4px;
49
- text-align: center;
50
- background-color: #F8F8F8;
51
- border: 1px solid #EEE;
52
- }
53
-
54
- .wrapper .image-info .action {
55
- width: 100px;
56
- cursor: pointer;
57
- }
58
-
59
- .wrapper .image-info .action .save-from-local {
60
- position: relative;
61
- height: 30px;
62
- font-size: 12px;
63
- line-height: 28px;
64
- cursor: pointer;
65
- border-radius: 4px;
66
- text-align: center;
67
- background-color: #F8F8F8;
68
- border: 1px solid #EEE;
69
- }
70
-
71
- .wrapper .image-info .action .save-from-local input {
72
- position: absolute;
73
- left: 0;
74
- top: 0;
75
- opacity: 0;
76
- cursor: pointer;
77
- }
78
-
79
- .wrapper .image-manual {
80
- background: #EEE;
81
- padding: 10px;
82
- border-radius: 5px;
83
- margin-top: 10px;
84
- line-height: 2;
85
- }
86
-
87
- .wrapper .image-manual .title {
88
- font-weight: bold;
89
- font-size: 120%;
90
- }
91
-
92
- .wrapper .image-manual .body {
93
- }
94
- </style>
95
- </head>
96
- <body>
97
- <div class="wrapper">
98
- <div class="image-info">
99
- <div class="input">
100
- <input type="text" id="fileUrl"/>
101
- </div>
102
- <div class="copy">
103
- <div id="copyButton">复制路径</div>
104
- </div>
105
- <div class="action">
106
- <div class="save-from-local">
107
- <div>本地选择保存</div>
108
- <input type="file" id="saveFile" multiple=true/>
109
- </div>
110
- </div>
111
- </div>
112
- <div class="image-tip"></div>
113
- <div class="image-manual">
114
- <div class="title">
115
- Windows使用教程
116
- </div>
117
- <div class="body">
118
- <p>1、点击复制地址按钮</p>
119
- <p>2、点击本地选择文件,粘贴剪切板的路径到文件选择路径</p>
120
- <p>3、点击确定</p>
121
- </div>
122
- <div class="title">
123
- Mac使用教程
124
- </div>
125
- <div class="body">
126
- <p>1、点击复制地址按钮</p>
127
- <p>2、点击本地选择文件,按快捷 Command+Shift+G ,粘贴剪切板的路径到文件选择路径</p>
128
- <p>3、点击确定</p>
129
- </div>
130
- </div>
131
- </div>
132
- <script src="../../third-party/jquery-3.5.1.js?89c36344"></script>
133
- <script src="../../third-party/webuploader/webuploader.js?f37088cc"></script>
134
- <script type="text/javascript" src="../../third-party/clipboard/clipboard.js?7af7cd91"></script>
135
- <script type="text/javascript" src="wordimage.js?61427c9d"></script>
136
- <script type="text/javascript">
137
- editor.setOpt({
138
- wordImageFieldName: "upfile",
139
- compressSide: 0,
140
- maxImageSideLength: 900
141
- });
142
- //全局变量
143
- var imageUrls = [], //用于保存从服务器返回的图片信息数组
144
- selectedImageCount = 0, //当前已选择的但未上传的图片数量
145
- optImageUrl = editor.getActionUrl(editor.getOpt('imageActionName')),
146
- optImageFieldName = editor.getOpt('imageFieldName'),
147
- optImageCompressBorder = editor.getOpt('imageCompressEnable') ? editor.getOpt('imageCompressBorder') : null,
148
- maxSize = editor.getOpt('imageMaxSize') / 1024 / 1024,
149
- extension = editor.getOpt('imageAllowFiles').join(';').replace(/\./g, '*.');
150
-
151
- /* 添加额外的GET参数 */
152
- var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
153
- urlWidthParams = optImageUrl + (optImageUrl.indexOf('?') == -1 ? '?' : '&') + params;
154
-
155
- var uploader,
156
- actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')),
157
- acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''),
158
- imageMaxSize = editor.getOpt('imageMaxSize'),
159
- imageCompressBorder = editor.getOpt('imageCompressBorder');
160
- uploader = WebUploader.create({
161
- accept: {
162
- title: 'Images',
163
- extensions: acceptExtensions,
164
- mimeTypes: 'image/*'
165
- },
166
- swf: '../../third-party/webuploader/Uploader.swf',
167
- server: actionUrl,
168
- fileVal: editor.getOpt('imageFieldName'),
169
- duplicate: true,
170
- fileSingleSizeLimit: imageMaxSize, // 默认 2 M
171
- threads: 1,
172
- compress: editor.getOpt('imageCompressEnable') ? {
173
- width: imageCompressBorder,
174
- height: imageCompressBorder,
175
- // 图片质量,只有type为`image/jpeg`的时候才有效。
176
- quality: 90,
177
- // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
178
- allowMagnify: false,
179
- // 是否允许裁剪。
180
- crop: false,
181
- // 是否保留头部meta信息。
182
- preserveHeaders: true
183
- } : false
184
- });
185
- uploader.on('uploadSuccess', function (file, res) {
186
- if ('state' in res) {
187
- if (res.state === 'SUCCESS') {
188
- if (res.url) {
189
- imageUrls.push({
190
- name: file.name,
191
- url: res.url,
192
- title: '',
193
- });
194
- $('.image-tip').html('<span style="color:#139213;">图片' + imageUrls.length + '(' + file.name + ')' + '转存成功</span>');
195
- } else {
196
- $('.image-tip').html('上传失败:' + JSON.stringify(res))
197
- }
198
- // 触发上传附件事件
199
- editor.fireEvent("uploadsuccess", {
200
- res: res,
201
- type: 'image'
202
- });
203
- } else {
204
- $('.image-tip').html('上传失败:' + JSON.stringify(res))
205
- }
206
- } else {
207
- $('.image-tip').html('上传失败:' + JSON.stringify(res))
208
- }
209
- });
210
- uploader.on('uploadFinished', function () {
211
- $('.image-tip').html('<span style="color:#139213;">转存成功,请提交确认</span>');
212
- });
213
- utils.domReady(function () {
214
- var options = {};
215
- var callbacks = {};
216
- wordImage.init(options, callbacks);
217
- });
218
- </script>
219
-
220
- </body>
221
- </html>
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title></title>
6
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
7
+ <script type="text/javascript" src="../internal.js?aea0c61c"></script>
8
+ <style type="text/css">
9
+ .wrapper {
10
+ width: 600px;
11
+ padding: 10px;
12
+ height: 352px;
13
+ overflow: hidden;
14
+ position: relative;
15
+ border-bottom: 1px solid #d7d7d7
16
+ }
17
+
18
+ .wrapper .image-info {
19
+ display: flex;
20
+ align-items: center;
21
+ }
22
+
23
+ .wrapper .image-info .input {
24
+ flex-grow: 1;
25
+ display: flex;
26
+ }
27
+
28
+ .wrapper .image-info .input input {
29
+ display: block;
30
+ border: 1px solid #CCC;
31
+ height: 23px;
32
+ border-radius: 3px;
33
+ flex-grow: 1;
34
+ outline: none;
35
+ }
36
+
37
+ .wrapper .image-info .copy {
38
+ width: 60px;
39
+ cursor: pointer;
40
+ margin: 0 5px;
41
+ }
42
+
43
+ .wrapper .image-info .copy div {
44
+ height: 30px;
45
+ font-size: 12px;
46
+ line-height: 28px;
47
+ cursor: pointer;
48
+ border-radius: 4px;
49
+ text-align: center;
50
+ background-color: #F8F8F8;
51
+ border: 1px solid #EEE;
52
+ }
53
+
54
+ .wrapper .image-info .action {
55
+ width: 100px;
56
+ cursor: pointer;
57
+ }
58
+
59
+ .wrapper .image-info .action .save-from-local {
60
+ position: relative;
61
+ height: 30px;
62
+ font-size: 12px;
63
+ line-height: 28px;
64
+ cursor: pointer;
65
+ border-radius: 4px;
66
+ text-align: center;
67
+ background-color: #F8F8F8;
68
+ border: 1px solid #EEE;
69
+ }
70
+
71
+ .wrapper .image-info .action .save-from-local input {
72
+ position: absolute;
73
+ left: 0;
74
+ top: 0;
75
+ opacity: 0;
76
+ cursor: pointer;
77
+ }
78
+
79
+ .wrapper .image-manual {
80
+ background: #EEE;
81
+ padding: 10px;
82
+ border-radius: 5px;
83
+ margin-top: 10px;
84
+ line-height: 2;
85
+ }
86
+
87
+ .wrapper .image-manual .title {
88
+ font-weight: bold;
89
+ font-size: 120%;
90
+ }
91
+
92
+ .wrapper .image-manual .body {
93
+ }
94
+ </style>
95
+ </head>
96
+ <body>
97
+ <div class="wrapper">
98
+ <div class="image-info">
99
+ <div class="input">
100
+ <input type="text" id="fileUrl"/>
101
+ </div>
102
+ <div class="copy">
103
+ <div id="copyButton">复制路径</div>
104
+ </div>
105
+ <div class="action">
106
+ <div class="save-from-local">
107
+ <div>本地选择保存</div>
108
+ <input type="file" id="saveFile" multiple=true/>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ <div class="image-tip"></div>
113
+ <div class="image-manual">
114
+ <div class="title">
115
+ Windows使用教程
116
+ </div>
117
+ <div class="body">
118
+ <p>1、点击复制地址按钮</p>
119
+ <p>2、点击本地选择文件,粘贴剪切板的路径到文件选择路径</p>
120
+ <p>3、点击确定</p>
121
+ </div>
122
+ <div class="title">
123
+ Mac使用教程
124
+ </div>
125
+ <div class="body">
126
+ <p>1、点击复制地址按钮</p>
127
+ <p>2、点击本地选择文件,按快捷 Command+Shift+G ,粘贴剪切板的路径到文件选择路径</p>
128
+ <p>3、点击确定</p>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ <script src="../../third-party/jquery-3.5.1.js?064a9f9e"></script>
133
+ <script src="../../third-party/webuploader/webuploader.js?6da2823d"></script>
134
+ <script type="text/javascript" src="../../third-party/clipboard/clipboard.js?555edf0a"></script>
135
+ <script type="text/javascript" src="wordimage.js?f4efe813"></script>
136
+ <script type="text/javascript">
137
+ editor.setOpt({
138
+ wordImageFieldName: "upfile",
139
+ compressSide: 0,
140
+ maxImageSideLength: 900
141
+ });
142
+ //全局变量
143
+ var imageUrls = [], //用于保存从服务器返回的图片信息数组
144
+ selectedImageCount = 0, //当前已选择的但未上传的图片数量
145
+ optImageUrl = editor.getActionUrl(editor.getOpt('imageActionName')),
146
+ optImageFieldName = editor.getOpt('imageFieldName'),
147
+ optImageCompressBorder = editor.getOpt('imageCompressEnable') ? editor.getOpt('imageCompressBorder') : null,
148
+ maxSize = editor.getOpt('imageMaxSize') / 1024 / 1024,
149
+ extension = editor.getOpt('imageAllowFiles').join(';').replace(/\./g, '*.');
150
+
151
+ /* 添加额外的GET参数 */
152
+ var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
153
+ urlWidthParams = optImageUrl + (optImageUrl.indexOf('?') == -1 ? '?' : '&') + params;
154
+
155
+ var uploader,
156
+ actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')),
157
+ acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''),
158
+ imageMaxSize = editor.getOpt('imageMaxSize'),
159
+ imageCompressBorder = editor.getOpt('imageCompressBorder');
160
+ uploader = WebUploader.create({
161
+ accept: {
162
+ title: 'Images',
163
+ extensions: acceptExtensions,
164
+ mimeTypes: 'image/*'
165
+ },
166
+ swf: '../../third-party/webuploader/Uploader.swf',
167
+ server: actionUrl,
168
+ fileVal: editor.getOpt('imageFieldName'),
169
+ duplicate: true,
170
+ fileSingleSizeLimit: imageMaxSize, // 默认 2 M
171
+ threads: 1,
172
+ compress: editor.getOpt('imageCompressEnable') ? {
173
+ width: imageCompressBorder,
174
+ height: imageCompressBorder,
175
+ // 图片质量,只有type为`image/jpeg`的时候才有效。
176
+ quality: 90,
177
+ // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
178
+ allowMagnify: false,
179
+ // 是否允许裁剪。
180
+ crop: false,
181
+ // 是否保留头部meta信息。
182
+ preserveHeaders: true
183
+ } : false
184
+ });
185
+ uploader.on('uploadSuccess', function (file, res) {
186
+ if ('state' in res) {
187
+ if (res.state === 'SUCCESS') {
188
+ if (res.url) {
189
+ imageUrls.push({
190
+ name: file.name,
191
+ url: res.url,
192
+ title: '',
193
+ });
194
+ $('.image-tip').html('<span style="color:#139213;">图片' + imageUrls.length + '(' + file.name + ')' + '转存成功</span>');
195
+ } else {
196
+ $('.image-tip').html('上传失败:' + JSON.stringify(res))
197
+ }
198
+ // 触发上传附件事件
199
+ editor.fireEvent("uploadsuccess", {
200
+ res: res,
201
+ type: 'image'
202
+ });
203
+ } else {
204
+ $('.image-tip').html('上传失败:' + JSON.stringify(res))
205
+ }
206
+ } else {
207
+ $('.image-tip').html('上传失败:' + JSON.stringify(res))
208
+ }
209
+ });
210
+ uploader.on('uploadFinished', function () {
211
+ $('.image-tip').html('<span style="color:#139213;">转存成功,请提交确认</span>');
212
+ });
213
+ utils.domReady(function () {
214
+ var options = {};
215
+ var callbacks = {};
216
+ wordImage.init(options, callbacks);
217
+ });
218
+ </script>
219
+
220
+ </body>
221
+ </html>
@@ -1,93 +1,93 @@
1
- /**
2
- * Created by JetBrains PhpStorm.
3
- * User: taoqili
4
- * Date: 12-1-30
5
- * Time: 下午12:50
6
- * To change this template use File | Settings | File Templates.
7
- */
8
- var wordImage = {};
9
- var g = $G, flashObj, flashContainer;
10
-
11
- wordImage.init = function (opt, callbacks) {
12
- showLocalPath("fileUrl");
13
- createCopyButton("copyButton", "fileUrl");
14
- addUploadButtonListener();
15
- addOkListener();
16
- };
17
-
18
- function addUploadButtonListener() {
19
- g('saveFile').addEventListener('change', function () {
20
- $('.image-tip').html('正在转存,请稍后...');
21
- uploader.addFile(this.files);
22
- uploader.upload();
23
- });
24
- }
25
-
26
-
27
- function addOkListener() {
28
- dialog.onok = function () {
29
- //console.log('imageUrls',imageUrls);
30
- if (!imageUrls.length) return;
31
- var urlPrefix = editor.getOpt('imageUrlPrefix'),
32
- images = domUtils.getElementsByTagName(editor.document, "img");
33
- editor.fireEvent('saveScene');
34
- // console.log('images',images,imageUrls);
35
- for (var i = 0, img; img = images[i++];) {
36
- var src = img.getAttribute("data-word-image");
37
- if (!src) continue;
38
- for (var j = 0, url; url = imageUrls[j++];) {
39
- // console.log('url',src, url);
40
- if (src.indexOf(url.name.replace(" ", "")) != -1) {
41
- img.src = urlPrefix + url.url;
42
- img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性
43
- img.setAttribute("title", url.title);
44
- domUtils.removeAttributes(img, ["data-word-image", "style", "width", "height"]);
45
- editor.fireEvent("selectionchange");
46
- break;
47
- }
48
- }
49
- }
50
- editor.fireEvent('saveScene');
51
- // hideFlash();
52
- };
53
- dialog.oncancel = function () {
54
- //hideFlash();
55
- };
56
- }
57
-
58
- function showLocalPath(id) {
59
- //单张编辑
60
- var img = editor.selection.getRange().getClosedNode();
61
- var images = editor.execCommand('wordimage');
62
- if (images.length == 1 || img && img.tagName == 'IMG') {
63
- g(id).value = images[0];
64
- return;
65
- }
66
- var path = images[0];
67
- var leftSlashIndex = path.lastIndexOf("/") || 0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种
68
- rightSlashIndex = path.lastIndexOf("\\") || 0,
69
- separater = leftSlashIndex > rightSlashIndex ? "/" : "\\";
70
-
71
- path = path.substring(0, path.lastIndexOf(separater) + 1);
72
- g(id).value = path;
73
- //增提醒用户选择哪些文件
74
- var names = [];
75
- for (var i = 0, len = images.length; i < len; i++) {
76
- var img = images[i];
77
- names.push(img.substring(img.lastIndexOf(separater) + 1, img.length));
78
- }
79
- $('.image-tip').html('<span style="color:#ff0000;">请选择:' + names.join("、") + "共" + images.length + '个文件</span>');
80
- }
81
-
82
- function createCopyButton(id, dataFrom) {
83
- var url = g(dataFrom).value;
84
- if (url.startsWith("file:////")) {
85
- url = url.substring(8);
86
- }
87
- url = decodeURI(url);
88
- g(id).setAttribute("data-clipboard-text", url);
89
- var clipboard = new Clipboard('[data-clipboard-text]')
90
- clipboard.on('success', function (e) {
91
- g('copyButton').innerHTML = '复制成功';
92
- });
93
- }
1
+ /**
2
+ * Created by JetBrains PhpStorm.
3
+ * User: taoqili
4
+ * Date: 12-1-30
5
+ * Time: 下午12:50
6
+ * To change this template use File | Settings | File Templates.
7
+ */
8
+ var wordImage = {};
9
+ var g = $G, flashObj, flashContainer;
10
+
11
+ wordImage.init = function (opt, callbacks) {
12
+ showLocalPath("fileUrl");
13
+ createCopyButton("copyButton", "fileUrl");
14
+ addUploadButtonListener();
15
+ addOkListener();
16
+ };
17
+
18
+ function addUploadButtonListener() {
19
+ g('saveFile').addEventListener('change', function () {
20
+ $('.image-tip').html('正在转存,请稍后...');
21
+ uploader.addFile(this.files);
22
+ uploader.upload();
23
+ });
24
+ }
25
+
26
+
27
+ function addOkListener() {
28
+ dialog.onok = function () {
29
+ //console.log('imageUrls',imageUrls);
30
+ if (!imageUrls.length) return;
31
+ var urlPrefix = editor.getOpt('imageUrlPrefix'),
32
+ images = domUtils.getElementsByTagName(editor.document, "img");
33
+ editor.fireEvent('saveScene');
34
+ // console.log('images',images,imageUrls);
35
+ for (var i = 0, img; img = images[i++];) {
36
+ var src = img.getAttribute("data-word-image");
37
+ if (!src) continue;
38
+ for (var j = 0, url; url = imageUrls[j++];) {
39
+ // console.log('url',src, url);
40
+ if (src.indexOf(url.name.replace(" ", "")) != -1) {
41
+ img.src = urlPrefix + url.url;
42
+ img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性
43
+ img.setAttribute("title", url.title);
44
+ domUtils.removeAttributes(img, ["data-word-image", "style", "width", "height"]);
45
+ editor.fireEvent("selectionchange");
46
+ break;
47
+ }
48
+ }
49
+ }
50
+ editor.fireEvent('saveScene');
51
+ // hideFlash();
52
+ };
53
+ dialog.oncancel = function () {
54
+ //hideFlash();
55
+ };
56
+ }
57
+
58
+ function showLocalPath(id) {
59
+ //单张编辑
60
+ var img = editor.selection.getRange().getClosedNode();
61
+ var images = editor.execCommand('wordimage');
62
+ if (images.length == 1 || img && img.tagName == 'IMG') {
63
+ g(id).value = images[0];
64
+ return;
65
+ }
66
+ var path = images[0];
67
+ var leftSlashIndex = path.lastIndexOf("/") || 0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种
68
+ rightSlashIndex = path.lastIndexOf("\\") || 0,
69
+ separater = leftSlashIndex > rightSlashIndex ? "/" : "\\";
70
+
71
+ path = path.substring(0, path.lastIndexOf(separater) + 1);
72
+ g(id).value = path;
73
+ //增提醒用户选择哪些文件
74
+ var names = [];
75
+ for (var i = 0, len = images.length; i < len; i++) {
76
+ var img = images[i];
77
+ names.push(img.substring(img.lastIndexOf(separater) + 1, img.length));
78
+ }
79
+ $('.image-tip').html('<span style="color:#ff0000;">请选择:' + names.join("、") + "共" + images.length + '个文件</span>');
80
+ }
81
+
82
+ function createCopyButton(id, dataFrom) {
83
+ var url = g(dataFrom).value;
84
+ if (url.startsWith("file:////")) {
85
+ url = url.substring(8);
86
+ }
87
+ url = decodeURI(url);
88
+ g(id).setAttribute("data-clipboard-text", url);
89
+ var clipboard = new Clipboard('[data-clipboard-text]')
90
+ clipboard.on('success', function (e) {
91
+ g('copyButton').innerHTML = '复制成功';
92
+ });
93
+ }