Quill 我如何禁用删除并专注于块嵌入
我有一个特别的污点,它会延伸到我的身体。我想在此块中禁用焦点和退格删除。这可能吗Quill 我如何禁用删除并专注于块嵌入,quill,Quill,我有一个特别的污点,它会延伸到我的身体。我想在此块中禁用焦点和退格删除。这可能吗 import Quill from 'quill'; import { html, render } from 'lit-html' let Block = Quill.import('blots/block'); let BlockEmbed = Quill.import('blots/block/embed'); const template = (text) => html` <img s
import Quill from 'quill';
import { html, render } from 'lit-html'
let Block = Quill.import('blots/block');
let BlockEmbed = Quill.import('blots/block/embed');
const template = (text) => html`
<img src="https://prosemirror.net/img/dino/tyrannosaurus.png"/>
<span>${text}</span>`;
export class BlockActionBlot extends BlockEmbed {
static blotName = 'action';
static className = 'block-action';
static tagName = 'div';
static create({ id, text }) {
const node = super.create();
node.dataset.text = text;
node.dataset.id = id;
render(template(text), node)
return node;
}
static value(node) {
return {
id: node.dataset.id,
text: node.dataset.text
}
}
}
从“纬管”导入纬管;
从'lit html'导入{html,render}
let Block=Quill.import('blots/Block');
让BlockEmbed=Quill.import('blots/block/embed');
常量模板=(文本)=>html`
${text}`;
导出类BlockActionBlot扩展BlockEmbed{
静态名称='action';
静态类名称='块操作';
静态标记名='div';
静态创建({id,text}){
const node=super.create();
node.dataset.text=文本;
node.dataset.id=id;
渲染(模板(文本)、节点)
返回节点;
}
静态值(节点){
返回{
id:node.dataset.id,
text:node.dataset.text
}
}
}
要禁用删除,您可以覆盖BlockActionBlot
中的deleteAt()
方法。如下所示。这将防止在印迹水平上删除
export class BlockActionBlot extends BlockEmbed {
// ...
deleteAt() { }
}
有关deleteAt
的签名和提供的其他方法,请参见
要禁用对blot的聚焦,您可以将用户选择:none
和/或光标:none
应用于blot。您可能需要在已有的create
方法中为上述css属性添加一个class
。您可以使用node.setAttribute('class','block-action')
来实现这一点,然后将css应用到加载的css中的div.block-action
另一个选项是尝试截取delete键。我认为这种方法虽然可行,但会更加复杂。如果您希望blot是“静态”的,我发现最简单的方法是在
创建方法中将节点.contentEditable
设置为false
我希望这会有所帮助,而且在你的情况下,答案不会太晚(我今天遇到了同样的问题)