This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Frame" World Wide Web – news · newspapers · books · scholar · JSTOR (January 2008) (Learn how and when to remove this message)

In the context of a web browser, a frame is a part of a web page or browser window which displays content independent of its container, with the ability to load content independently. The HTML or media elements in a frame may come from a web site distinct from the site providing the enclosing content. This practice, known as framing,[1] is today often regarded as a violation of same-origin policy.

In HTML, a frameset is a group of named frames to which web pages and media can be directed; an iframe provides for a frame to be placed inside the body of a document.

Since the early 2000s, concern for usability and accessibility has motivated diminished use of framesets and the HTML5 standard does not support them.

Tags and attributes

The frames in HTML are created using the <frameset></frameset> tag pair. The <frameset> tag is a container tag for all other tags that are used to create frames. The <frameset> tag replaces the <body> tag in frameset documents.The <frameset> tag defines how to divide the window into frames.

Each frameset defines a set of rows or columns.  If user define frames by using the rows attribute then horizontal frames are created. If user define frames by using cols then vertical frames are created.

The <noframes> element may be included so web browsers with frames disabled (or browsers that do not support frames) can display something to the user, as in this example:

<frameset cols="85%, 15%">
  <frame src="http://www.example.com/frame_1.html" name="frame_1">
  <frame src="http://alt.example.com/frame_2.html" name="frame_2">
  <noframes>
    Your browser does not support frames. 
    <a href="http://www.example.com/frame_1.html">Click here</a> to view frame 1. 
    <a href="http://alt.example.com/frame_2.html">Click here</a> for frame 2.
  </noframes>
</frameset>

Framesets have a border attribute. If set to an integer greater than 0, the user can resize the frames by dragging this border, unless a noresize attribute is present in a frame element. If border is set to 0, no border will be displayed and content in different frames will abut each other without delineation.

The iframe element is used inline within a normal HTML body, and defines the initial content and name similarly to the frame element. Any text inside an <iframe></iframe> tag pair will be displayed in browsers that do not understand the iframe tag.

<iframe src="http://www.example.com/frame_1.html" height="480" width="640">
    Your browser does not support iframes. <a href="http://www.example.com/frame_1.html">Click here</a> to view the content.
</iframe>

History

This section needs expansion. You can help by adding to it. (January 2008)

Netscape Navigator 2.0 introduced the elements used for frames in March 1996. Other browser vendors such as Apple with Cyberdog followed later that year.[2] At that time, Netscape proposed frames to the World Wide Web Consortium (W3C) for inclusion in the HTML 3.0 standard.[3]

Frames were used to display and navigate early online magazines and web apps, such as webmail services and web chat sites. Frames had the advantage of allowing elements to be displayed sitewide without requiring server features such as server-side includes or CGI support. These features were not common on early web servers accessible to the public.

Early websites often used a frame at the top to display a banner which could not be scrolled away. These banner frames sometimes included the site's logo as well as advertising.[4]

XHTML 1.1, the intended successor to HTML 4, removed all frames. XFrames, the intended eventual replacement,[5] provided the composite URI to address a populated frameset.

The later HTML5 standard removed framesets by means differing from XHTML.[6] The iframe element remains with a number of "sandboxing" options intended for sharing content between sites.[7]

Advantages

By allowing content to be loaded and navigated independently, frames offered several advantages over the plain HTML in use when they were first developed:

[9]

Criticism

The practice of framing HTML content led to numerous criticisms, most centering on usability and accessibility concerns. These include:

Alternatives

As web technology developed, many of the purposes for which frames were used became possible in ways that avoided the problems identified with frames.

See also

References

  1. ^ "Connecting to Other Websites". 2 April 2013. What makes framing different is that instead of taking the user to the linked website, the information from that website is imported into the original page and displayed in a special "frame". Technically, when you're viewing framed information, your computer is connected to the site doing the framing—not the site whose page appears in the frame.
  2. ^ Garaffa, Dave (23 December 1996). "A Present From Apple: Cyberdog 2.0a1" (Press release). Internet.com. Archived from the original on 17 August 2000. Retrieved 14 April 2011.
  3. ^ Ladd, Eric. "Using HTML 3.2, Java 1.1, and CGI; Ch. 13, Frames". Archived from the original on 30 October 2007.
  4. ^ Shafer, Dan (1996). JavaScript & Netscape wizardry. Scottsdale, AZ: Coriolis Group Books. pp. 31. ISBN 978-1-883577-86-5.
  5. ^ "XFrames working draft". W3C.
  6. ^ HTML5 differences from HTML4: "The following elements are not in HTML5 because using them damages usability: frame, frameset, noframes"
  7. ^ HTML5 differences from HTML4: "The iframe element has new attributes called sandbox and srcdoc which allow for sandboxing content, e.g. blog comments."
  8. ^ "Framesets".
  9. ^ Roberts, L, John. "CSS and SEO". Retrieved 28 January 2022.
  10. ^ a b Nielsen, Jakob (December 1996). "Frames Suck Most of the Time".
  11. ^ "Should You Use Frames?". HTML Code Tutorial. Archived from the original on 6 August 2016. Retrieved 7 April 2010.
  12. ^ "G.E.Boyd's How To Do Just About Anything by email – Part 1". GeoCities. 11 August 2000. Archived from the original on 17 August 2000. Retrieved 24 June 2010.
  13. ^ Moore-Eded, Piers. "SEO fundamentals 1". Lewes SEO. Retrieved 25 February 2012.
  14. ^ "I Hate Frames Club".
  15. ^ a b "Why are frames so evil?".
  16. ^ a b "The Pros and Cons of Frames in Web Pages".