IP Library › Granted Patent US 9,990,343
Granted Patent B2
US 9,990,343 · App. 15/193,985 · Granted Jun 5, 2018

System and method for in-browser editing

Inventors: Scott David McNaught (Warner, AU); Ben Andreas Weigt (Wynnum, AU); Robert Bruce Coleman (Chermside West, AU)
G06F17/2247G06F3/0482G06F17/211G06F17/218G06F17/272
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 9,990,343
App. No.
15/193,985
Granted
Jun 5, 2018
Kind
B2
Abstract

The present invention relates to an in-browser editor. Specifically, embodiments of the present invention provide a system and method of editing content in a browser without having to rely on the particular in-browser editing technology, such as “contentEditable” and “innerHTML.” The system includes a parser that converts an input string representing content edits in the browser into a data structure known as an Intermediary DOM (document object model). The Intermediary DOM provides a completely accurate representation of editor content in real time and operates in tandem with the Browser DOM to render the edited content in the Intermediary DOM back into displayable content.

Claims (26)

1. An in-browser content editor comprising:

a processor;

a non-transitory computer readable memory;

a display in communication with said processor and said memory; and

a plurality of subsystems comprising:

1) a parser that converts a mark-up language document comprising data displayed in a browser into an Intermediary DOM (Document Object Model) comprising a plurality of data nodes, wherein said Intermediary DOM stores elements of the document that are not represented in a native browser DOM of the browser;

2) the Intermediary DOM which contains all of the data that was in the mark-up language document, including data for whitespace, parse errors, capitalization of tag names, mark-up language attributes, and any other source code data that is not represented in the native browser DOM;

3) the native browser DOM which displays content of the in-browser editor on a display, wherein most nodes in the Intermediary DOM are linked to corresponding nodes in the native browser DOM, wherein modifications to the Intermediary DOM are reflected in the native browser DOM, wherein the only nodes in the Intermediary DOM that are not linked to corresponding nodes are Intermediary DOM nodes that contain elements that are not visually renderable on the display;

4) an event handling subsystem that handles and records user-initiated input events, wherein the Intermediary DOM includes nodes that reference the input events and corresponding render nodes are created in the native browser DOM;

5) a selection data structure that contains selections of browser content made by the user in the in-browser editor; and

6) a content converter configured to convert browser content in the Intermediary DOM into a string, which can then be saved or output to the browser as a mark-up language string for processing;

whereby edits made to the displayed content in the browser are accurately reflected in source code of the mark-up language document stored as elements in the Intermediary DOM in real time, and displayed browser content, mark-up language document source code, and the Intermediary DOM are maintained in synchronization.

2. The in-browser editor of claim 1 , wherein said native browser DOM comprises event listeners configured to capture user input events.

3. The in-browser editor of claim 1 , wherein said Intermediary DOM, native browser DOM, and selection data structure are linked.

4. The in-browser editor of claim 1 , wherein said native browser DOM is used to render said Intermediary DOM elements on a display.

5. The in-browser editor of claim 1 , wherein render nodes are generated within the native browser DOM for any Intermediary DOM elements having a visual representation in the in-browser editor thereby enabling the Intermediary DOM to use the native browser DOM to render edited content in the browser.

6. The in-browser editor of claim 1 , wherein the Intermediary DOM converts all of the data in its nodes, at least some of which reflects edits to the browser content, back into HTML output using a toString( ) method and displays the edited HTML in the browser.

7. A method of editing content in a browser comprising the steps of:

converting a mark-up language document displayed in a browser into an Intermediary DOM (Document Object Model) comprising a plurality of data nodes, wherein said Intermediary DOM stores elements of the document that are not represented in a native DOM of the browser,

wherein the Intermediary DOM contains all source code data for the mark-up language document, including data for whitespace, parse errors, capitalization of tag names, mark-up language attributes, and any other source code data that is not represented in the native browser DOM,

wherein most nodes in the Intermediary DOM are linked to corresponding nodes in the browser DOM, wherein modifications to the Intermediary DOM are reflected in the browser DOM, wherein the only nodes in the Intermediary DOM that are not linked to corresponding nodes are Intermediary DOM nodes that contain elements that are not visually renderable on a display;

handling and recording user-initiated input events, wherein the Intermediary DOM includes nodes that reference the input events and corresponding render nodes are created in the browser DOM;

converting browser content in the Intermediary DOM into a string which can then be saved or output to the browser as a mark-up language string for processing;

whereby edits made to displayed content in the browser are accurately reflected in real time in source code of the mark-up language document stored as elements in the Intermediary DOM, and

wherein displayed browser content, mark-up language document source code, and the Intermediary DOM are maintained in synchronization.

8. The method of claim 7 , wherein said Intermediary DOM, native browser DOM, and selection data structure are linked.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2020
From: SYNERGY PLATFORM PTY LTD
To: ONCORD PATENTS PTY LTD
Reel/Frame 052841/0803 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2018
From: MCNAUGHT, SCOTT DAVID; WEIGHT, BEN ANDREAS; COLEMAN, ROBERT BRUCE
To: SYNERGY PLATFORM PTY LTD
Reel/Frame 045673/0254 →
Continuity (1)
Related Publication 20170371852A1 · Dec 28, 2017