这是演示:http: //jsfiddle.net/qh7Sq/
我希望能够编辑链接内的跨度,实际上我可以通过防止冒泡传播阻止插入符号更改操作的某些部分。
请不要建议不同的标记,只有 javascript。
这是演示:http: //jsfiddle.net/qh7Sq/
我希望能够编辑链接内的跨度,实际上我可以通过防止冒泡传播阻止插入符号更改操作的某些部分。
请不要建议不同的标记,只有 javascript。
我就是这样做的:
https://jsfiddle.net/e15j8oq9/1/
// if contenteditable inside a link
document.addEventListener('click', e=>{
if (e.button !== 0) return;
if (e.target.isContentEditable) {
e.preventDefault();
}
if (e.explicitOriginalTarget && e.explicitOriginalTarget.isContentEditable) { // keyboard click firefox
e.preventDefault();
}
});
// prevent (Firefox) placing cursor incorrectly
document.addEventListener('mousedown', e=>{
if (!e.target.isContentEditable) return;
var link = e.target.closest('a');
if (link) {
const href = link.getAttribute('href')
link.removeAttribute('href');
setTimeout(()=>link.setAttribute('href', href))
}
});