Last post by Spuds -
I've made a few more updates, mostly to try and clean up a few area's as well as provide a common(ish) UI across the devices.
On mobile/touch devices, the button will always appear below the text. Only chrome allowed using the button in place of the default context menu (copy/paste/etc ribbon) The button is placed a little farther away from the text bottom to avoid interfering with the selection markers. Firefox has some problems, in that the contextMenu and selection markers are part of the "app" they do not appear in the DOM, nor does interfacing with them update the DOM or fire events (chrome does). So once that button is placed (Fx), that is where it is.
On desktop / Ipad and some touch, the button will generally appear where you "lift up" ... If you select left to right, the button will be on the right below the selection. If you select right to left, it will be on the left point, below the selection. This is more useful (and apparent) on desktop as it allows one to quickly access the button since its where you ended your selection.
Improved on keeping the button on screen with the exception of mobile/touch where it could be off the bottom of the screen if you select text at the bottom. This is because to move it, it has to move above the default contextMenu, the size of which is dependent on various items, none of which are (cross browser) accessible, and as I said its not part of the DOM so you can't z-index your way on top. So a minor annoyance.
Cleaned up the event listeners and some scroll jank