La réponse fournie par N Röhler fonctionne bien que dans Internet Explorer (avec quelques bugs avant IE8 - mais je pense qu'il a gagné n'est pas un problème pour vous puisque vous utilisez un canvas et pageX), et dans Opera si le padding est 0, et dans Safari/Chrome si la largeur de la bordure est égale à 0 aussi. Dans Firefox, malheureusement, offsetX et offsetY sont indéfinis. Kaninepete, je pense que vous devriez reconsidérer, pour des raisons de simplicité, la manière d'obtenir les coordonnées de la souris par rapport à votre élément de canevas. Tout ce que vous avez à faire est de calculer la position de la toile, ce qui est une tâche assez simple en utilisant .getBoundingClientRect() (aussi, n'oubliez pas d'ajouter des offsets de défilement si nécessaire), et soustrayez-le de pageX et pageY.
Je prendrais un coup d'oeil au code source jQuery, ce qu'ils utilisent dans la fonction offset. – HerrSerker
Je pense que c'est 'element.offsetLeft' et' element.offsetTop'. Ils utilisent probablement toutes sortes d'autres choses. – mowwwalker