Framing (World Wide Web)

From Wikipedia, the free encyclopedia

On a web page, framing means that a website can be organized into frames. Each frame displays a different HTML document. Headers and sidebar menus do not move when the content frame is scrolled up and down. For developers frames can also be convenient. For example, if an item needs to be added to the sidebar menu, only one file needs to be changed, whereas each individual page on a non-frameset website would have to be edited if the sidebar menu appeared on all of them. However, server-side includes and scripting languages such as PHP can also be used to accomplish this aim without some of the drawbacks of frames such as confusing the operation of the address bar and back and forward buttons.

Contents

[edit] History

Netscape 2.0 introduced the elements used for frames in the 1990s (see Netscape Navigator). At that time, Netscape proposed frames to the W3C for inclusion in the HTML 3.0 standard[1].

[edit] Syntax

The frameset replaces the <body> and </body> tags, and describes the dimensions (in percentages) of the frames. These percentages should add to 100, though the last one may be replaced with an asterisk as a shortcut to the remaining screen space[2]. Within the frameset, the framed panels are described with their source documents. The <noframes> element may be included so browsers with frames disabled (or browsers that don't support frames) can display something to the user, as in this example:

 <frameset cols="85%, 15%">
   <frame src="URL OF FRAME PAGE 1 HERE">
   <frame src="URL OF FRAME PAGE 2 HERE">
   <noframes>
     Text to be displayed in browsers that do not support frames
   </noframes>
 </frameset>

[edit] Content Sources

The contents of the frames may be hosted on the same server as the parent page, or it may link in code from another website server such that these external contents are automatically displayed within the frame (transclusion or remote loading). This may be confusing and inconvenient to the users: they can get the impression that the information belongs to the same website; also, less than the full browser window is available and the address bar is less informative. Some websites request not to be used in this way on other websites; some discourage it by including a framekiller script in its pages. The framing website runs a risk of being blamed for external content that, for example, is or becomes inaccurate or objectionable[3]. In addition, there may be legal issues associated with framing, in that the owner of the external content may object to the involuntary (and possibly objectionable) implied association with the framing website. Visitors may confuse ownership of copyrights or trademarks of the external site with the owner of the framing site.

[edit] Criticism

Chief criticism of the practice of framing HTML content includes:

  • That framing breaks the link between content and a URL, making it difficult to link to or bookmark a particular item of content within the frameset[4]
  • That the implementation of frames is inconsistent across different browsers[5]
  • That framing confuses the boundaries between content on different servers[6], which raises issues of copyright infringement[7]
  • That visitors arriving from search engines may land on a page intended for display in a frame, which often has no navigation [8]
  • That frames change the behavior of the back button[9]
  • That frames usually don't print the way users expect they will[10]

[edit] Replacements

Although frames were included in the XHTML 1.0 specification, they were not carried across to XHTML 1.1. The intended eventual replacement is XFrames[11] , which attempts to solve the problem of addressing a populated frameset through composite URIs. For those serving web content under the XHTML 1.0 specification, documents may be embedded within one another via either the object or iframe element tags. Under the 1.1 specification, iframe was removed, leaving only the object element for transclusion until browsers begin support for XFrames. Unfortunately, Internet Explorer 7 does not handle objects used to replace the function of an iframe, it doesn't recognize that a link from within the included page has the containing page as its _parent. Therefore constructing a menu to be included on every page, in imitation of a frameset, fails as the parent frame cannot be targeted. KHTML and Gecko based browsers, like Konqueror, Safari and Firefox, however, work perfectly well with this construct.

Frames are removed in the HTML5 draft, citing usability concerns.

[edit] See also

[edit] References

[edit] External links