jquery内容可编辑缩进

时间:2013-03-06 01:22:20

标签: javascript jquery

我一直在寻找几个小时,但仍然无法解决。

所以我正在处理一个文本编辑器,我想要它,所以当他们按下'标签'键时,它会缩进文本,我选择的文本或光标文本前面的文字选择。我一直在寻找设计模式,我试图制作一个元素designMode,但你不能,除非我做错了。这是我的代码,它启动了我的简单编辑器

 $(".code").click(function () {
   $(".code").attr('contenteditable', 'true');
   document.getElementById("code").designMode = "on";
 });

然后是“标签键代码

$(".code")
  .keydown(function (e) {      
  var keyCode = e.keyCode || e.which;
  if(keyCode == 9) {
    e.preventDefault();

  }
});

问题:您如何在信息中缩进,例如在texteditor中您可以缩进或发短信。 (我的关键事件没有解决,我没有任何问题)

这不是textarea或输入框,它只是一个可信的div

2 个答案:

答案 0 :(得分:3)

所以我想通了,代码吼叫

$(".code").keydown(function(e)
           {
              e = e || window.event;
              var keyCode = e.keyCode || e.which; 
              if (keyCode == 9)
              {
                e.preventDefault();
                  document.execCommand('styleWithCSS',true,null);
                  document.execCommand('indent',true,null);
              }
           });

答案 1 :(得分:0)

我假设$(“。code”)是一个textarea,事件发生在焦点和keydown时。

$(function(){
    var c = $(".code");
    c.keydown(function (e) {
      e = e || window.event;
      var keyCode = e.keyCode || e.which;
      if(keyCode === 9) {
        e.preventDefault();

        $(this).val($(this).val().substring(0,$(this).get(0).selectionStart) + "\t" + $(this).val().substring($(this).get(0).selectionEnd));
      }
    });
});

示例:

http://jsfiddle.net/hXxU9/