(dans chaque navigateur que j'ai essayé) double-cliquez sur une toile HTML5 sélectionne n'importe quel texte immédiatement après l'élément de toile. Je préférerais garder les clics confinés à la toile. P>
(NB: Je ne veux pas désactiver la sélection du texte entièrement (par exemple comme ): Si vous double-cliquez sur le texte, il doit être sélectionné. Je ne veux tout simplement pas que les clics sur "fuite" de la toile.) p>
est-ce possible? P>
voici Une page simple qui démontre le problème. p>
3 Réponses :
J'ai rencontré une circonstance très similaire où je permettais à la possibilité de glisser et de déposer des éléments autour de la page à l'aide de JavaScript. P>
Pour résoudre ce problème, vous avez la possibilité de capturer l'événement de sélection de texte et de la capture de l'événement si vous retournez FAUX, la sélection n'aura jamais lieu. P>
Pour un bon exemple de cet être mis à utiliser, veuillez vous référer: http: // www .dynamicdrive.com / dynamicindex9 / noselect.htm p>
alternativement si vous connaissez le cadre JQuery, un plug-in parfaitement simpliste et efficace est disponible à: http://chris-barr.com/entry/disable_text_selection_with_jquerery/ p>
mette la chance à vous! p>
Tout d'abord, laissez-moi noter que votre toile ne remplit pas la largeur de la page, il ne s'agit que de 100 pixels de large. La largeur et la hauteur des attributs d'une toile analysent toujours des pixels, de sorte que la largeur d'écriture = "100%" signifie seulement 100 pixels jusqu'à la balise de toile.
Pour répondre à votre question, écrivez à JavasRip: P>
//give your canvas an id, I used 'can' var canvas = document.getElementById('can'); canvas.onselectstart = function () { return false; }
Je t'aime @simon. Vous venez de corriger mon problème :)
Juste pour mettre mon cas là-bas - attacher le gestionnaire à la toile n'a rien fait pour moi. En fait, pour résoudre votre problème, vous devez joindre ce gestionnaire à l'élément qui est sélectionné. Dans mon cas, c'était un élément de la plage de Div, en dehors de la toile. J'espère que cela t'aides :)
Plus de huit ans plus tard, cela a également résolu un problème similaire que j'ai eu avec un SVG, appliqué directement à l'élément SVG.
Essayez de mettre votre objet en toile dans un div Je pensais juste que j'écris ceci juste au cas où cela aide toute autre chose à sortir. p>