1. A computer-implemented method for dynamically annotating a web-based document comprising: receiving from a user an indication of a selected portion of a web-based document to be annotated; receiving a user selection of an editing function to be applied to the web-based document; generating an annotation window, the annotation window being an overlay on the selected portion of the web-based document and including one or more annotations to the selected portion of the web-based document; copying annotatable content of the selected portion of the web-based document into the annotation window; capturing an annotation to the selected portion of the web-based document in the annotation window using the selected editing function; dividing the web-based document into a matrix of elements, wherein each element represents a sub-region of the web-based document; generating mapping information by mapping the annotation in the annotation window to one or more elements of the matrix corresponding to the selected portion of the web-based document; storing the annotation and the mapping information; and upon receiving a request for the annotated web-based document, providing the web-based document along with a new annotation window incorporating the stored annotation based on the mapping information, wherein the receiving from a user an indication, the receiving a user selection, the generating, the copying, the capturing, the dividing, the mapping, the storing, and the providing are implemented by one or more computer devices.