优化富文本编辑器和md编辑器的粘贴事件逻辑
parent
973fac0975
commit
d0d09f0c9c
|
@ -1,5 +1,6 @@
|
||||||
*.min.js
|
*.min.js
|
||||||
*.min.css
|
*.min.css
|
||||||
|
.httpserver
|
||||||
index.html
|
index.html
|
||||||
.vscode
|
.vscode
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
|
@ -2,7 +2,7 @@ jsxBracketSameLine: true
|
||||||
jsxSingleQuote: true
|
jsxSingleQuote: true
|
||||||
semi: false
|
semi: false
|
||||||
singleQuote: true
|
singleQuote: true
|
||||||
printWidth: 100
|
printWidth: 80
|
||||||
useTabs: false
|
useTabs: false
|
||||||
tabWidth: 2
|
tabWidth: 2
|
||||||
trailingComma: none
|
trailingComma: none
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@bytedo/wcui",
|
"name": "@bytedo/wcui",
|
||||||
"version": "1.0.6",
|
"version": "1.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "基于wc开发的一套UI库, 面向未来, 面向electron",
|
"description": "基于wc开发的一套UI库, 面向未来, 面向electron",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -582,13 +582,33 @@ export default class Editor {
|
||||||
var txt = ev.clipboardData.getData('text/plain')
|
var txt = ev.clipboardData.getData('text/plain')
|
||||||
var items = ev.clipboardData.items
|
var items = ev.clipboardData.items
|
||||||
|
|
||||||
|
// 先文件判断, 避免右键单击复制图片时, 当成html处理
|
||||||
|
if (items && items.length) {
|
||||||
|
let blob = null
|
||||||
|
for (let it of items) {
|
||||||
|
if (it.type.indexOf('image') > -1) {
|
||||||
|
blob = it.getAsFile()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (blob) {
|
||||||
|
return this._handleImage(blob)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (html) {
|
if (html) {
|
||||||
html = html
|
html = html
|
||||||
.replace(/\t/g, ' ')
|
.replace(/\t/g, ' ')
|
||||||
.replace(/<\/?(meta|link|script)[^>]*?>/g, '')
|
.replace(/<\/?(meta|link|script)[^>]*?>/g, '')
|
||||||
.replace(/<!--[\w\W]*?-->/g, '')
|
.replace(/<!--[\w\W]*?-->/g, '')
|
||||||
.replace(/<a[^>]*? href\s?=\s?["']?([^"']*)["']?[^>]*?>/g, '<a href="$1">')
|
.replace(
|
||||||
.replace(/<img[^>]*? src\s?=\s?["']?([^"']*)["']?[^>]*?>/g, '<img src="$1">')
|
/<a[^>]*? href\s?=\s?["']?([^"']*)["']?[^>]*?>/g,
|
||||||
|
'<a href="$1">'
|
||||||
|
)
|
||||||
|
.replace(
|
||||||
|
/<img[^>]*? src\s?=\s?["']?([^"']*)["']?[^>]*?>/g,
|
||||||
|
'<img src="$1">'
|
||||||
|
)
|
||||||
.replace(/<(?!a|img)([\w\-]+)[^>]*>/g, '<$1>')
|
.replace(/<(?!a|img)([\w\-]+)[^>]*>/g, '<$1>')
|
||||||
.replace(/<xml[^>]*?>[\w\W]*?<\/xml>/g, '')
|
.replace(/<xml[^>]*?>[\w\W]*?<\/xml>/g, '')
|
||||||
.replace(/<style>[\w\W]*?<\/style>/g, '')
|
.replace(/<style>[\w\W]*?<\/style>/g, '')
|
||||||
|
@ -599,16 +619,6 @@ export default class Editor {
|
||||||
if (txt) {
|
if (txt) {
|
||||||
return this.exec('insertText', txt)
|
return this.exec('insertText', txt)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (items && items.length) {
|
|
||||||
let blob = null
|
|
||||||
for (let it of items) {
|
|
||||||
if (it.type.indexOf('image') > -1) {
|
|
||||||
blob = it.getAsFile()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this._handleImage(blob)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
this.__observer = new MutationObserver(_ => {
|
this.__observer = new MutationObserver(_ => {
|
||||||
|
|
|
@ -841,7 +841,7 @@ export default class Meditor {
|
||||||
ev.preventDefault()
|
ev.preventDefault()
|
||||||
wrap = wrap
|
wrap = wrap
|
||||||
.split('\n')
|
.split('\n')
|
||||||
.map(function(it) {
|
.map(function (it) {
|
||||||
return ev.shiftKey ? it.replace(/^\s\s/, '') : ' ' + it
|
return ev.shiftKey ? it.replace(/^\s\s/, '') : ' ' + it
|
||||||
})
|
})
|
||||||
.join('\n')
|
.join('\n')
|
||||||
|
@ -956,15 +956,6 @@ export default class Meditor {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (html) {
|
|
||||||
html = html2md(html)
|
|
||||||
return this.insert(html)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (txt) {
|
|
||||||
return this.insert(txt)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items && items.length) {
|
if (items && items.length) {
|
||||||
let file = null
|
let file = null
|
||||||
|
|
||||||
|
@ -978,8 +969,18 @@ export default class Meditor {
|
||||||
} else {
|
} else {
|
||||||
this._handleUpload(file, '')
|
this._handleUpload(file, '')
|
||||||
}
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (html) {
|
||||||
|
html = html2md(html)
|
||||||
|
return this.insert(html)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (txt) {
|
||||||
|
return this.insert(txt)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
this._clickFn = $.bind(this.__TOOLBAR__, 'click', ev => {
|
this._clickFn = $.bind(this.__TOOLBAR__, 'click', ev => {
|
||||||
|
|
Reference in New Issue