Question

Je vois que Theres est pas construire de manière à faire onglets / retraits en markItUp? Donc, je l'ai fait quelque chose comme

onTab: { 
  keepDefault: false, 
  replaceWith: function(markItUp) { 
    return miu.openEachLineWith(markItUp, '  '); 
  }
},
openEachLineWith: function(markItUp, openingStr) {
  var textarea = markItUp.textarea,
      selStart = textarea.selectionStart,
      selEnd = textarea.selectionEnd,
      selText = textarea.value.substring(selStart, selEnd),
      lines = [], 
      charsAdded = 0;

  lines = selText.split(/\r?\n/);
  for (var i = 0, len = lines.length; i < len; i++) {
    lines[i] = openingStr + lines[i];
    charsAdded += openingStr.length;
  }
  textarea.selectionEnd = selEnd + charsAdded;
  return lines.join('\n');
}

qui fonctionne, mais comment puis-je régler la sélection après avoir remplacé le texte, je le veux pour sélectionner le texte à onglets, je préfère aussi la façon dont l'éditeur ici sur le SO travaille là où quand je gras un texte, il sélectionne les caractères gras texte au lieu de déplacer le curseur vers la fin, je peux le faire avec markItUp aussi?

Était-ce utile?

La solution

Je travaille sur un script pour le faire. Voici un exemple: http://jsfiddle.net/timdown/dp2WL/2/

lorsque indente Tab est pressé et outdents lorsque Maj + Tab est pressé et ne nécessite pas de bibliothèque. Il n'a pas eu autant les tests que je voudrais, mais semble bien fonctionner dans tous les navigateurs principaux, y compris IE 6. Le code principal est de un projet open source, je travaille sur . Le bit qui permet indentation onglet est en bas:

window.onload = function() {
    rangyInputs.init();
    rangyInputs.enableTabIndentation(document.getElementById("test"), "    ");
};

Autres conseils

Vous devez définir la sélection dans la section AfterInsert rappel (pas dans replaceWith )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top