如何在contentEditable div中制作可点击锚点?

Inf*_*ity 22 html contenteditable

我有以下代码:

<div contentEditable="true">
    Blah blah <a href="http://google.com">Google</a> Blah blah
</div>
Run Code Online (Sandbox Code Playgroud)

小提琴

有没有办法使这个a可点击,不可编辑,而不移动该div之外的锚?

For*_*Two 23

只需将链接包装在另一个div中,如下所示:

<div contentEditable="true">

    <div contentEditable="false">
            Bla bla <a href="http://google.com">Google</a> Bla bla
    </div>
</div>?
Run Code Online (Sandbox Code Playgroud)

  • 锚文本在此处不可编辑.是否可以在保持锚文本编辑的同时使链接可点击? (2认同)
  • 将contentEditable =“ false”添加到&lt;a&gt;更好。`&lt;a href="http://google.com" contentEditable="false"&gt; Google &lt;/a&gt;` (2认同)

小智 13

使链接本身不可编辑(至少在HTML5上有效):

<a contenteditable="false" href="http....... >


lon*_*day 6

据我所知,如果不使用Javascript自己编程,就无法做到这一点.执行此操作的简单方法是在按下键contentEditable时禁用并重新启用Ctrl.因此,Ctrl按下时,链接是可点击的,否则不是.这意味着您仍然可以编辑链接的内容.此功能类似于Microsoft Word,IIRC.

代码可能如下所示:

var content = document.getElementById('content');

document.addEventListener('keydown', function(event) {
    if (event.keyCode === 17) {          // when ctrl is pressed
        content.contentEditable = false; // disable contentEditable
    }
}, false);

document.addEventListener('keyup', function(event) {
    if (event.keyCode === 17) {          // when ctrl is released
        content.contentEditable = true;  // reenable contentEditable
    }
}, false);
Run Code Online (Sandbox Code Playgroud)

更新了小提琴

  • 这会破坏 Ctrl+C、Ctrl+V (3认同)