summernote 不允许在写入 onpaste 事件后格式化粘贴的文本
summernote doesn't allow to format pasted text after writing onpaste event
我的问题是,当我在 summernote 中粘贴数据时会清除格式,但是如果我想按照我的意愿格式化粘贴的文本,它不允许我对粘贴的文本或我正在写的文本进行更改在编辑器中。
我已经使用此代码将 onpaste 事件绑定到 summernote。
我正在使用 summernote.js 版本 0.5.8
$(".summernote").summernote({
onpaste: function (e) {
debugger;
var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text');
e.preventDefault();
setTimeout(function () {
document.execCommand('insertHTML', false, bufferText);
}, 10);
}
})
得到了解决我的 problem.I 必须销毁 Summernote 对象并重新初始化它的问题。我不确定这是否是一种正确的编码方式,但它对我有用。
我在布局页面上做了这个,因为我在项目的各个不同地方使用 Summernote
$(".summernote").summernote({ height: 250 });
$(".summernote").summernote({
onpaste: function (e) {
var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text');
e.preventDefault();
setTimeout(function () {
document.execCommand('insertText', false, bufferText);
$(this).parent().siblings('.summernote').destroy();
}, 10);
}
});
在 html 文件中使用粘贴属性
<div summernote="rules" ng-model="league.rules" validate-summernote="checkLeagueRules" config="summernote_options" on-paste="removeFormatting(evt)" class="summernote"></div>
在控制器中使用 removeFormatting 函数
$scope.removeFormatting = function(e)
{
var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text');
e.preventDefault();
// Firefox fix
setTimeout(function () {
document.execCommand('insertText', false, bufferText);
}, 10);
}
我的问题是,当我在 summernote 中粘贴数据时会清除格式,但是如果我想按照我的意愿格式化粘贴的文本,它不允许我对粘贴的文本或我正在写的文本进行更改在编辑器中。 我已经使用此代码将 onpaste 事件绑定到 summernote。
我正在使用 summernote.js 版本 0.5.8
$(".summernote").summernote({
onpaste: function (e) {
debugger;
var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text');
e.preventDefault();
setTimeout(function () {
document.execCommand('insertHTML', false, bufferText);
}, 10);
}
})
得到了解决我的 problem.I 必须销毁 Summernote 对象并重新初始化它的问题。我不确定这是否是一种正确的编码方式,但它对我有用。 我在布局页面上做了这个,因为我在项目的各个不同地方使用 Summernote
$(".summernote").summernote({ height: 250 });
$(".summernote").summernote({
onpaste: function (e) {
var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text');
e.preventDefault();
setTimeout(function () {
document.execCommand('insertText', false, bufferText);
$(this).parent().siblings('.summernote').destroy();
}, 10);
}
});
在 html 文件中使用粘贴属性
<div summernote="rules" ng-model="league.rules" validate-summernote="checkLeagueRules" config="summernote_options" on-paste="removeFormatting(evt)" class="summernote"></div>
在控制器中使用 removeFormatting 函数
$scope.removeFormatting = function(e)
{
var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text');
e.preventDefault();
// Firefox fix
setTimeout(function () {
document.execCommand('insertText', false, bufferText);
}, 10);
}