Extending URL syntax for framesets?

E. Stephen Mack (estephen@emf.net)
Mon, 28 Jul 1997 14:19:20 -0700


Message-Id: <3.0.3.32.19970728141920.00724e08@emf.net>
Date: Mon, 28 Jul 1997 14:19:20 -0700
To: www-html@w3.org
From: "E. Stephen Mack" <estephen@emf.net>
Subject: Extending URL syntax for framesets?

A key limitation with the use of frames (acknowledged by
the HTML 4.0 draft) is that currently URLs can only point
to an initial frameset and not a particular instance of
a frameset (after links have been followed and the contents
of different frames have changed).

This prevents accurate bookmarking and prevents Web authors
from linking to a particular set of frames that's different
than the default frameset in a frameset document.

Instead, Web authors say things like, "Start at this URL which
sets up the frames, then click on the Foo link in the left
frame, then click on the Bar link in the new right-hand frame,
which changes the top-right frame.  That's where you'll find
the info."

I would like to propose discussion on an extension to URL
semantics that specifies the base frameset URL (so that the
frames can be created) and then adds the appropriate
frame URLs, in much the same way as the FRAME elements
within the FRAMESET element in the frameset document currently
specify individual URLs.

I'm not sure if any separators are available that are not
already compromised or overloaded.  For now, I'm going
to suggest the question mark even though it is fraught with
other meaning -- so that I overload the GET URL format
even further, but at least I know it's a valid URL syntax.
(I'm open to suggestion.)

So, let's suppose at http://www.foo.com/frameset.html
is a file with the following frameset:

<FRAMESET ROWS="50%,50%"
  <FRAME SRC="document1.html">
  <FRAME SRC="document2.html" NAME="main">
</FRAMESET>

If document1.html contains targeted links to the
"main" frame, then users can change the contents
of the lower frame to be documents other than
document2.html.  Suppose, for example, that
document1.html contains
<A HREF="document6.html" TARGET="main">Read 6</A>
and someone follows that link.

Then at that point, the URL http://www.foo.com/frameset.html
leads only to the initial, default frameset -- and not
the current frameset instance, which has document6.html
placed in the lower frame.

The disadvantage is that current browsers can't bookmark
the current frameset instance and other authors can't
link to the current frameset instance.

To solve this problem, I propose that the URL:

http://www.foo.com/frameset.html?main=document6.html

should tell browsers to create the initial frameset
found at frameset.html, but substitute document6.html
for document2.html 

Nested frameset documents (that is, if document6.html is
itself a frameset) can be specified because the frame
names should all be unique.  So if document6.html creates
two new nested frames, named "left" and "right," then the URL:

http://www.foo.com/frameset.html?main=document6.html&left=4.html&right=5.html

should do the right thing, as long as the browser
creates the frames sequentially (that is, putting document6 on screen
and creating its frameset before tring to load in the contents of the
previously non-existent left and right frames.

One drawback is that this method may only allow relative URLs
and not absolute URLs, since
http://www.foo.com/frameset.html?main="http://www.bar.com/9.html"
may be a problematic construction.

This list may not be the best place to propose changes
to the URL semantics, but since it's a frames issue
that coincides with HTML 4.0's introduction of frames,
I thought people here would be the most interested
(and opinionated).
-- 
E. Stephen Mack <estephen@emf.net>    http://www.emf.net/~estephen/