IP Library Granted Patent US 8,413,045
Granted Patent B2
US 8,413,045 · App. 13/084,950 · Granted Apr 2, 2013

Rich browser-based word processor

Inventors: Micah Lemonik (New York, NY); Olga S. Belomestnykh (New York, NY); Janani R. Ravi (Jersey City, NJ); Luiz A. F. Pereira Filho (New York, NY)
Assignee: Google Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,413,045
App. No.
13/084,950
Granted
Apr 2, 2013
Kind
B2
Abstract

A computer-implemented method for presenting a document for interaction with a user in a web browser includes accessing an electronic model of the document; determining, with a computing device, positions for items in a visual rendering of the electronic model based on relative sizes and positions of other items in the electronic model; and generating, with the computing device, a document object model (DOM) that defines an editing surface, wherein the DOM (a) places placing the items at the determined positions on the editing surface, (b) places a graphic element that represents a cursor at a determined location on the editing surface, and (c) is arranged to receive user input on the editing surface and to correlate a location of the received user input to a location in the electronic model.

Claims (50)

1. A computer-implemented method for presenting a document for interaction with a user in a web browser, the method comprising:

accessing an electronic model of the document;

determining, with a computing device, positions for items in a visual rendering of the electronic model based on relative sizes and positions of other items in the electronic model;

generating, with the computing device, a document object model (DOM) that represents at least part of the electronic model and defines an editing surface, wherein the DOM:

(a) places the items at the determined positions on the editing surface,

(b) places a graphic element that represents a cursor at a determined location on the editing surface, and

(c) is arranged to receive user input on the editing surface and to correlate a location of the received user input to a location in the electronic model;

receiving an entry of a character to the editing surface;

generating an off-screen display area including the character; and

measuring a size of the off-screen display area to determine a location to display the character on the editable surface.

2. The computer-implemented method of claim 1 , comprising determining a location to display a cursor on the editing surface based on the measured size of the off-screen display area.

3. The computer-implemented method of claim 2 , wherein the browser display area comprises an HTML span element.

4. The computer-implemented method of claim 2 , wherein the cursor is provided as an HTML image element.

5. The computer-implemented method of claim 1 , further comprising receiving a copy command from the user, and in response, populating text that is selected in the browser display area to a hidden contentEditable element, placing focus on the contentEditable element, and making the populated text available to a copy function of the browser.

6. The computer-implemented method of claim 1 , further comprising receiving a paste command from the user, and in response, reading text from a contentEditable element into which the browser has placed selected text, and transforming the text in the contentEditable element into the electronic model of the document.

7. The computer-implemented method of claim 1 , further comprising uploading, from the computing device to a central server system that is remote form the computing device, information about changes to the document model so that the central server system may maintain a document model that matches the document model that is on the computing device.

8. The computer-implemented method of claim 1 , wherein the uploading is performed separately for substantially each and every character submitted to the document by a user.

9. The computer-implemented method of claim 1 , further comprising receiving, from the central server system, information about changes made to the document by users remote from the computing device, revising the electronic document model to reflect the changes, and automatically rendering at least the revised portion of the document model to update the DOM so that the changes made by the users remote to the computing device are reflected in the DOM.

10. A computer-implemented web browser-based document editing system, comprising:

a first rich text model on a client computing device for storing a format for a rich document having text and formatting definitions for the text;

a view programmed to render the model for display to an editing surface that displays the rich document;

a controller to intercept and interpret inputs made by a user with respect to the document in the view and to cause the rich text model to be revised in accordance with the user inputs; and

an off-screen browser display area that is not visible to a user of the browser,

wherein the view is programmed to:

render characters entered by a user to the off-screen browser display area; and

determine dimensions for displaying the characters with the view by measuring a size of the off-screen display area.

11. The system of claim 10 , further comprising a second rich text model at a server system remote from the client computing device, and wherein the controller is programmed to provide data that reflects the inputs to both the first and second rich text models.

12. The system of claim 10 , further comprising a timer that gathers user inputs over a defined time period before providing data that reflects the inputs to the server system.

13. The system of claim 10 , wherein the browser display area comprises an HTML span element.

14. The system of claim 10 , wherein the view is programmed to render the model to a document object model (DOM) for the web browser.

15. A computer-implemented web browser-based document editing system, comprising:

a first rich text model on a client computing device for storing a format for a rich document having text and formatting definitions for the text;

a view of the model that is a visual representation of a portion of the model with formatting applied to the model; and

means for generating the view from the model and for updating the view in response to receiving keystrokes by a user of the client computing device, where the keystrokes are associated with one or more characters;

means for generating an off-screen display area including the one or more characters; and

means for measuring a size of the off-screen display area to determine a location to display the one or more characters on the editable surface.

16. One or more non-transitory tangible recordable storage media storing instructions that, when executed, perform operations comprising:

accessing an electronic model of the document;

determining, with a computing device, positions for items in a visual rendering of the electronic model based on relative sizes and positions of other items in the electronic model;

generating, with the computing device, a document object model (DOM) that represents at least part of the electronic model and defines an editing surface, wherein the DOM:

(a) places the items at the determined positions on the editing surface,

(b) places a graphic element that represents a cursor at a determined location on the editing surface, and

(c) is arranged to receive user input on the editing surface and to correlate a location of the received user input to a location in the electronic model;

receiving an entry of a character to the editing surface;

generating an off-screen display area including the character; and

measuring a size of the off-screen display area to determine a location to display the character on the editable surface.

17. The non-transitory tangible recordable storage media of claim 16 , wherein the operations comprise determining a location to display a cursor on the editing surface based on the measured size of the off-screen display area.

18. The non-transitory tangible recordable storage media of claim 16 , wherein the operations further comprise receiving a copy command from the user, and in response, populating text that is selected in the browser display area to a hidden contentEditable element, placing focus on the contentEditable element, and making the populated text available to a copy function of the browser.

19. The non-transitory tangible recordable storage media of claim 16 , wherein the operations further comprise receiving a paste command from the user, and in response, reading text from a contentEditable element into which the browser has placed selected text, and transforming the text in the contentEditable element into the electronic model of the document.

20. The non-transitory tangible recordable storage media of claim 16 , wherein the operations further comprise uploading, from the computing device to a central server system that is remote form the computing device, information about changes to the document model so that the central server system may maintain a document model that matches the document model that is on the computing device.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2013
From: LEMONIK, MICAH; BELOMESTNYKH, OLGA S.; RAVI, JANANI R.; FILHO, LUIZ A. F. PEREIRA
To: GOOGLE INC.
Reel/Frame 030202/0769 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2013
From: LEMONIK, MICAH; BELOMESTNYKH, OLGA S.; RAVI, JANANI R.; FILHO, LUIZ A. F. PEREIRA
To: GOOGLE INC.
Reel/Frame 030203/0239 →
Continuity (2)
Provisional Application 61323242 · Apr 12, 2010
Related Publication 20110252304A1 · Oct 13, 2011