|Publication number||US7310627 B2|
|Application number||US 09/882,917|
|Publication date||18 Dec 2007|
|Filing date||15 Jun 2001|
|Priority date||15 Jun 2001|
|Also published as||US7756849, US20020194150, US20080005089|
|Publication number||09882917, 882917, US 7310627 B2, US 7310627B2, US-B2-7310627, US7310627 B2, US7310627B2|
|Inventors||Cary Lee Bates, Steven Paul Jones|
|Original Assignee||International Business Machines Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (25), Referenced by (2), Classifications (11), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Field of the Invention
The present invention generally relates to data processing. More particularly, embodiments are provided for searching content in frames.
2. Description of the Related Art
In recent years, the popularity of the Internet has grown dramatically. One reason for such growth is the accessibility of voluminous information including text, audio and video.
In general, the information available from the Internet (and some other networks) is in the form of electronic documents. In the context of the World Wide Web (a particularly useful aspect of the Internet), a website is made up of one or more electronic documents located on a given host. All websites taken together constitute the World Wide Web (WWW). A Web document is located at an address represented by a URL, and may reside on a user's own computer, or on another computer networked with the user's computer. In particular, the document may reside on a networked computer (called a host) with an Internet address.
Once a Web page is made available on the World Wide Web via a server, any client connected to the World Wide Web can access the page using a software interface known as a browser. Access is typically accomplished by typing the URL in the appropriate browser field (or retrieving the address from a file, such as a bookmark file). After the URL has been entered, the browser requests the server to send the HTML file.
Web documents are generally formatted in a markup language such as HyperText Markup Language (HTML), Extensible Markup Language (XML) and Wireless Markup Language (WML). Such markup languages describe document appearance, document layout and hyperlink specifications. A markup language defines the syntax that describes the structure and the content of a document including text, images, and other supported media. Using markup language, a Web page can be created which contain, bitmap images, graphic images, text of various styles and sizes, and other formatting attributes and contents.
One formatting tool made available by markup languages, such as HTML, is a “frame.” Frames are formatting features allowing a browser window to be divided into multiple display areas, each containing a different document. A frame may contain any valid content that a browser is capable of displaying, including multimedia. If a frame's contents include a hypertext link the user selects, the new document's contents may replace that same frame, another frame's content, or the entire browser window. Frames are defined in a special HTML document in which the <body> tag is replaced with one or more <frameset> tags that tell the browser how to divide its main window into discrete frames. Special <frame> tags go inside the <frameset> tag and point to the documents that go inside the frames.
A problem occurs when a user desires to search for text in a window containing multiple frames. Because each frame in a window is essentially an independent, non-overlapping electronic document, the user must first select one frame to be searched. Selection is typically made by clicking on a frame with a mouse pointer. Once a frame has been selected, the user enters search string into a dialog box, typically invoked by a “find text” menu item. The user may also select other search criteria, such as searching only uppercase words or making the search case insensitive. The content of the selected frame is then searched for text matching the search terms and criteria.
In some cases, inexperienced users may be unfamiliar with the foregoing frame selection requirement necessary for a frame search. As a result, users become frustrated with the inability to invoke the “find text” dialog box. Even if the find function is available, the user may have unwittingly selected the wrong frame to search. Even experienced users find it inconvenient to select a frame manually prior to initiating a search.
Therefore, there is a need for a method and system for facilitating frame content searches within a multiple frames environment.
Embodiments of the present invention provide methods, systems and articles of manufacture for searching content in frames. In one embodiment, a method of formatting an electronic document comprising at least two frames each containing searchable text is provided. The method comprises receiving a response containing the electronic document, automatically designating one of the at least two frames as a default search frame, rendering the electronic document for display.
In another embodiment, a computer readable medium comprises a network navigation program which, when executed by a processor, causes steps comprising parsing a response containing an electronic document formatted with at least two frames each containing searchable content and automatically designating one of the at least two frames as a default search frame. The electronic document may then be rendered for display.
Another embodiment provides a computer readable medium comprising a digital document comprising a format code segment and a default search frame code segment. When executed by a processor configured with a program, the format code segment formats the digital document with at least two frames containing searchable content and the default search frame code segment designates one of the two frames as a default search frame.
So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
Embodiments of the present invention provide methods, systems and articles of manufacture for searching content in frames. In general, information located at one or more networked addresses may be displayed to a user in two or more frames. One of the frames may be automatically designated as a default search frame. Such a designation may be made according to a tag or other criteria, such as attributes of the frame itself or historical information pertaining to a previous search of one of the active frames. In any case, the designation of a default search frame eliminates the need for explicit selection by the user prior to a search.
One embodiment of the invention is implemented as a program product for use with a computer system such as, for example, the environment 100 shown in
In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, module, object, or sequence of instructions may be referred to herein as a “program”. The computer program typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
In general, the data processing system 100 includes a client computer 122 and at least one server computer 124 (five such servers 124 are shown). The client computer 122 and the server computer 124 may be components of the same computer system or may be separate components connected via a network connection 126. In one embodiment, the network 126 comprises the Internet. The client computer 122 includes a Central Processing Unit (CPU) 128 connected via a bus 130 to memory 132, storage 134, input device 136 and output device 138. The input device 136 can be any device to give input to the client computer 122. For example, a keyboard, keypad, light pen, touch screen, button, mouse, track ball, or speech recognition unit could be used. The output device 138 may be any conventional display screen and, although showing separately from the input device 136, the output device 138 and input device 136 could be combined. For example, a display screen with an integrated touch screen, and a display with an integrated keyboard, or a speech recognition unit combined with a text speech converter could be used.
Memory 132 is preferably a random access memory sufficiently large to hold the necessary programming and data structures of the invention. While memory 132 is shown as a single entity, it should be understood that memory 132 may in fact comprise a plurality of modules, and that the memory 132 may exist at multiple levels, from high speed registers and caches to lower speed but larger DRAM chips. The memory 132 contains a browser program 140 that, when executed on the CPU 128, provides support for navigating between the various servers 124 and locating addresses at one or more of the servers 124. The contents of memory 132 can be loaded from and stored to the storage 134 as CPU 128 has a need for it.
The contents of memory 132 include a client navigation program 140 (also referred to as the “browser 140”). The browser 140 can be integrated with the operating system of the client computer 122, or can be a separate application. The browser program 140 may be initiated by a user on the client computer 122 and used to navigate between the servers 124. The documents accessible by the browser program 140 may reside on the client computer 122 or on the network of servers 124. For illustration, one embodiment of the invention is described in the context of the distributed system (such as the one shown in
Memory 132 also includes a visited list 141. In general, the visited list 141 is any data structure configured to contain network addresses (e.g., URLs) which have been previously visited by a user using the browser 140. Although shown separately, the visited list 141 may be a module of the browser 140.
In the preferred embodiment, storage 134 is DASD (Direct Access Storage Device), although it could be other storage such as floppy disc drives or optical storage. Although storage 134 is shown as a single unit, it could be any combination of fixed and/or removable storage devices, such as fixed disc drives, floppy disc drives, tape drives, removable memory cards, or optical storage. Memory 132 and storage 134 could be part of one virtual address space spanning multiple primary and secondary storage devices.
Each server computer 124 generally comprises a CPU 142, memory 144, and storage 146 coupled to one another by a bus 148. The storage 146 is provided for long-term storage of implementation code and data needed during operation. The memory 144 is random access memory sufficiently large to hold the necessary programming and data structures that are located on the server computer 124 according to a network information address, e.g., a URL. As shown, the memory 144 includes an HTTP server process 145 adapted to service requests from the client computer 122 regarding electronic documents. A first electronic document 147 and a second electronic document 149 are shown residing in the memory 144. Illustratively, the first and second electronic documents 147, 149 are HTML documents. More generally, the first and second electronic documents 147,149 may be any electronic documents containing instructions that can be rendered by the browser 140. Although shown residing on the same server 124, the first and second electronic documents may be located on separate servers 124. The programming and data structures may be accessed and executed by the CPU 142 as needed.
To display the HTML documents 147, 149, the browser 140 relies on HTML commands embedded in the HTML documents. These commands are referred to as “tags”. The tags indicate features or elements of a page and cause the browser to perform various functions, such as a particular type of formatting. HTML tags can be identified in HTML files by their syntax. That is, the tags are surrounded by left angle brackets (initiating a tag function) and right angle brackets (turning the tag function off). The first word in a tag is its formal name, which is typically descriptive of its function. Any additional words in a tag are special attributes, sometimes with an associated value after an equal sign (=), which further define or modify the tag's actions. For example, a tag and attribute combination may define background color, background audio, inline images, a hyperlink, the beginning of a new paragraph and the like.
In one embodiment, at least one of the HTML documents 147, 149 is a multi-frame document (e.g., a frame-based Web page) formatted with a SEARCHFRAME tag. An illustrative SEARCHFRAME tag is shown below in Table I.
In Table I, three frames are defined (as shown by lines 002-004) for a window. Illustratively, the FRAMESET tag for “frame2” includes a SEARCHFRAME attribute. The SEARCHFRAME attribute indicates to the browser 140 that the frame2 is the default search frame when the page is rendered.
A dialog box 210 is shown over the second frame 204B. The dialog box 210 is invoked in response to a user-initiated “Find” request. The dialog box 210 is configured with a text window 212, an Options button 214, a “Find Next” button 216, and a Cancel button 218. A user may enter a search string into the text window 212 and then click on the “Find Next” button 216 to initiate a search of the content in the second frame 204B. The find operation may be customized by clicking on the Options button 214 which provides the user with options including making the search case-sensitive or case-insensitive, etc.
The method 300 is entered at step 302 and proceeds to step 304 to get a user action. At step 306, the method 300 determines whether the action is to display a page. An action to display a page may be invoked by, for example, clicking on a hypertext link or entering a URL into the address window of the browser interface. In either case, the appropriate information is retrieved from the source location (e.g., a Web server) and then parsed by the browser 140. If step 306 is answered affirmatively, the method 300 queries (step 308) whether the page contains a SEARCHFRAME tag. If so, the frame for which the tag is defined is flagged as the default search frame (step 310). At step 312, the page is rendered and the default search frame is highlighted (or otherwise formatted to indicate the frame to the user). The method 300 then returns to step 304.
If, at step 308, the page does not contain a SEARCHFRAME tag, processing continues with step 314 where the default search frame is determined according to other criteria. In one embodiment, the default search frame is determined according to size. For example, the largest frame may be designated as the default search frame. This designation is premised on the assumption that the largest frame is more likely to be searched by the user. In another embodiment, the designation of the default search frame is made according to the frame having the most searchable content. In yet another embodiment, the frame configured with a scroll bar is selected as the default search frame, in the event that only one frame has a scroll bar. In still another embodiment, the designation of the default search frame is made according to a previous user selection. Previous user selections of a search frame for a particular page may be stored in the previously visited list 141. Accordingly, at step 314, the previously visited list 141 may be accessed to determine the default search frame.
Regardless of the particular manner in which the default search frame is determined at step 314, the selected frame is then flagged at step 316. Processing continues at step 312 where the page is rendered and the frame is highlighted. The method 300 then returns to step 304 to get another user action.
Returning to step 306, if the action is not to display a page, the method 300 proceeds to step 318 and queries whether the action is to select a frame. Selection of a frame may be accomplished, for example, by clicking on the frame with a mouse pointer. If step 318 is entered affirmatively, the selected frame is flagged as the default search frame at step 316. In addition, the flagged frame may be stored to the visited list 141 for future reference. The page is rendered and the frame is highlighted at step 312.
If, however, step 318 is entered negatively, the method 300 proceeds to step 320 and queries whether the user action is a request to perform a search of content in a frame. If so, the search string is retrieved at step 322. At step 322, the default search frame is searched for content matching the search string. At step 326, the method 300 queries whether a match was found. If so, the content is highlighted and positioned in the frame to be viewable by a user. Processing then returns to step 304 to get another user event. If, however, no matches are found at step 326, the method 300 queries (step 330) whether the active browser window contains more frames and whether the user has indicated a desire to search each of the frames. Such a desire may be indicated, for example, when the user selects a “search all” option made available by the browser 140. If step 330 is entered negatively, the method 300 returns to step 304. Otherwise, processing proceeds to step 332 where another frame is designated and flagged as the default search frame. Designation of a frame at step 332 may be performed in the manner described above with reference to step 314. As such, multiple iterations of frame selection may occur in a given window. For example, if a first frame was designated by size (e.g. the largest frame), then a subsequent designation at step 332 may result in designating the next largest frame. Processing then continues with step 324, which has been described above.
Returning to step 320, if the user action is not to perform a search, the method 300 proceeds to step 334 to query whether the user action is a request to find the next match (for a search string) in a frame. If so, processing proceeds with step 324, which has been described above. Otherwise, the method 300 proceeds to step 336 where all other user actions are handled according to the rules of the data processing system 100.
It is noted that the order of the steps of method 300 is merely illustrative and may be rearranged in other embodiments. In particular, the steps of designating a default search frame and rendering a page are interchangeable. In addition, the automatic designation of a frame may be used to advantage in manners other than for content searching purposes. For example, the designated frame may be a default printable frame.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5388993 *||15 Jul 1992||14 Feb 1995||International Business Machines Corporation||Method of and system for demonstrating a computer program|
|US6009429 *||13 Nov 1997||28 Dec 1999||International Business Machines Corporation||HTML guided web tour|
|US6021416 *||25 Nov 1997||1 Feb 2000||International Business Machines Corporation||Dynamic source code capture for a selected region of a display|
|US6031989 *||27 Feb 1997||29 Feb 2000||Microsoft Corporation||Method of formatting and displaying nested documents|
|US6044387 *||10 Sep 1997||28 Mar 2000||Microsoft Corporation||Single command editing of multiple files|
|US6230171 *||29 Aug 1998||8 May 2001||International Business Machines Corporation||Markup system for shared HTML documents|
|US6266684 *||6 Aug 1997||24 Jul 2001||Adobe Systems Incorporated||Creating and saving multi-frame web pages|
|US6288702 *||26 Sep 1997||11 Sep 2001||Kabushiki Kaisha Toshiba||Information device having enlargement display function and enlargement display control method|
|US6449624 *||18 Oct 1999||10 Sep 2002||Fisher-Rosemount Systems, Inc.||Version control and audit trail in a process control system|
|US6542515 *||19 May 1999||1 Apr 2003||Sun Microsystems, Inc.||Profile service|
|US6593944 *||18 May 2000||15 Jul 2003||Palm, Inc.||Displaying a web page on an electronic display device having a limited display area|
|US6658626 *||3 Sep 1999||2 Dec 2003||The Regents Of The University Of California||User interface for displaying document comparison information|
|US6681368 *||5 Jan 1999||20 Jan 2004||Fujitsu Limited||File management method, file display method, and file storage medium that enables display of an index file having a frame structure by both browsers that support and browsers that do not support frame functionality|
|US6718518 *||20 Dec 1999||6 Apr 2004||International Business Machines Corporation||Non-disruptive search facility|
|US6736642 *||22 Aug 2001||18 May 2004||Indeliq, Inc.||Computer enabled training of a user to validate assumptions|
|US6785891 *||12 Oct 1999||31 Aug 2004||International Business Machines Corporation||Data sharing between application environments|
|US6801906 *||11 Jan 2000||5 Oct 2004||International Business Machines Corporation||Method and apparatus for finding information on the internet|
|US6943795 *||28 Aug 2000||13 Sep 2005||Hitachi, Ltd.||Screen display control and transition method and its system|
|US20020054126 *||16 Oct 1998||9 May 2002||Owen John Gamon||Browser translation between frames and no frames|
|US20020065110 *||13 Sep 2001||30 May 2002||Enns Neil Robin Newman||Customizing the display of a mobile computing device|
|US20020070961 *||29 Nov 2001||13 Jun 2002||Qi Xu||System and method of hyperlink navigation between frames|
|US20020120505 *||29 Aug 2001||29 Aug 2002||Ezula, Inc.||Dynamic document context mark-up technique implemented over a computer network|
|US20020129064 *||1 Jun 2001||12 Sep 2002||John Guthrie||Method and system for injecting code to conditionally incorporate a user interface component in an HTML document|
|US20020147634 *||31 Jan 2001||10 Oct 2002||Ronald Jacoby||System for dynamic generation of online streaming media advertisements|
|US20030028850 *||21 Aug 2002||6 Feb 2003||Microsoft Corporation Located At One Microsoft Way||Edit command delegation program for editing electronic files|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7756849 *||14 Sep 2007||13 Jul 2010||International Business Machines Corporation||Method of searching for text in browser frames|
|US20080005089 *||14 Sep 2007||3 Jan 2008||Bates Cary L||Method of searching for text in browser frames|
|U.S. Classification||1/1, 707/E17.107, 707/E17.063, 707/999.001|
|International Classification||G06F17/30, G06F7/00|
|Cooperative Classification||Y10S707/99931, G06F17/30861, G06F17/30646|
|European Classification||G06F17/30T2F2, G06F17/30W|
|15 Jun 2001||AS||Assignment|
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BATES, CARY LEE;JONES, STEVEN PAUL;REEL/FRAME:011918/0619
Effective date: 20010613
|25 Jul 2011||REMI||Maintenance fee reminder mailed|
|18 Dec 2011||LAPS||Lapse for failure to pay maintenance fees|
|7 Feb 2012||FP||Expired due to failure to pay maintenance fee|
Effective date: 20111218