Retrait de redimensionner les gestionnaires sur contentEditable div
J'ai créé un contentEditable div pour l'utiliser comme un riche textarea. Il a redimensionner les gestionnaires autour d'elle que je tiens à vous débarrasser. Une idée de comment je pourrais faire cela?
Edit: Cela semble être le cas parce que je suis absolument positionnement de la div, donc Firefox ajoute une exaspérant _moz_resize attribut à l'élément que je ne peux pas l'éteindre.
- L'Open source, c'est exact? 🙂
- Non, ce n'est ni open source, ni open source.
- Pour contourner ce problème, il est possible d'utiliser une alternative pour les DIV qui est fonctionnellement le même, mais n'affiche pas le redimensionnement des gestionnaires sur le contenu modifiable (je viens de tester avec l'ARTICLE sur IE 11 ou FireFox 63.0.1) ce n'est pas une solution à la question posée - c'est une bidouille. Mais est une option si vous devez avoir cette fonctionnalité
Vous devez vous connecter pour publier un commentaire.
Tout comme une note de côté, vous pouvez désactiver Firefox automatique de la poignée de redimensionnement de la fonctionnalité par l'envoi de la (assez mal documenté)
enableObjectResizing
commande pour le document:Autant que je sache, cela ne peut en toute sécurité être fait une fois que le document est chargé, et il n'ya aucun moyen que je connaisse pour désactiver la saisie, qui est une fonction à part.
Il regarde comme je vais être en mesure de contourner ce problème en ajoutant un wrapper div et absolument positionnement de l'enveloppe et ensuite la réalisation de l'intérieur de la div contentEditable.
En Chrome 39, ces poignées ne semblent pas exister, même si on le désire.
Dans Firefox, il suffit d'utiliser
execCommand
, comme ZoogieZork répondu.Mais dans Internet Explorer, ce ne peut pas être éteint. Il doit être travaillé autour de.
Dans WYMeditor de développement, voici ce que j'ai trouvé.
Les résultats suivants dans:
mouseup
mouseup
résultat sera une image sélectionnée.C'est le meilleur que je pouvais venir après des heures de très grandes respirations. Je pense qu'il est assez bon si vous voulez vraiment vous débarrasser de ces poignées.
Dans IE, Réglage
oncontrolselect
de retourfalse
sur l'image, vraiment empêcher les poignées apparaissent, et vous pouvez le faire intelligemment, en attachant le gestionnaire suivant à lamousedown
événement:Il ne fonctionne pas tout à fait bien. La raison qu'il ne fonctionne pas très bien, c'est que dans le but de commencer une opération de glisser-déposer sur l'image, il fallait appuyer sur le bouton de la souris, sans bouger, pendant une fraction de seconde, et ensuite seulement commencer à bouger pour le faire glisser. Si l'un appuyé sur la souris et a immédiatement commencé à glisser, l'image restera à sa place et de ne pas être déplacé.
Donc je ne l'ai pas fait.
Ce que j'ai fait est le suivant. Dans tous les navigateurs, j'ai utilisé
mouseup
texte, sélectionnez l'image de la cible exclusivement. Non-IE et IE11, de façon synchrone:Dans IE 7 à 10, de manière asynchrone:
Cela fait en sorte que, après ces poignées de se montrer, ils disparaissent le plus vite possible, parce que l'image perd de son "contrôle de la sélection", parce que la sélection est remplacée par un régulier de la sélection de texte.
Dans Internet Explorer 7 à 11, j'ai attaché un gestionnaire de
dragend
qui supprime tous de sélection:Cela rend les poignées qui apparaissent après le glisser-déposer, disparaissent.
J'espère que cette aide, et j'espère que vous pouvez faire encore mieux.
pour IE11 (je havn'pas testé les anciennes versions d'IE, mais j'ai l'impression que ça peut marcher), vous pouvez ajouter contenteditable="false" attribut de la balise img. Cela permettra d'éviter toute re-dimensionnement de l'être, tout en gardant un glisser-déposer dans la place.
... juste le meilleur correctif jamais
ou n'importe quel élément html qui enveloppe votre entrée/img
Fonctionne sur IE11 comme un charme
Je viens confrontés à ce problème.
J'ai essayé
document.execCommand("enableObjectResizing", false, false);
mais, l'icône de déplacement était encore apparaître. Ce qui vient de résoudre mon problème était justee.preventDefault()
quandonmousedown
événement se produit.Avez-vous essayé d'ajouter le style
à la div?