我对contenteditable元素的标记如下:

<iframe class="rich_text">
<html style="background:none transparent;">
    <head></head>
    <body contenteditable="true"></body>
</html>
</iframe>

主体是否有选择更改事件(可编辑)?
这样我就可以检测到所选文本块是否具有粗体/下划线等。

我尝试了一些事件处理程序(jQuery),但没有成功:
var richText = $(".rich_text"),
richTextDoc = richText.contents()[0],
richTextBody = richText.contents().find("body");

// Enable Design mode.
richTextDoc.open();
richTextDoc.write("");
richTextDoc.close();
richTextDoc.designMode = "on";

// Binds selection change event
$(richTextDoc).bind("select", function() { ... });
$(richTextDoc).bind("selectstart", function() { ... });
richTextBody .bind("select", function() { ... });
richTextBody .bind("selectstart", function() { ... });

最佳答案

假设您的iframe内容是从同一域提供的,则可以使用:

$('.rich_text').contents()
  .find('body')
  .bind('selectstart', function(){});

正如您可以选择元素时see from here, the selectstart event is correctly fired一样。

关于javascript - contenteditable中的选择更改事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8442158/

10-11 12:06