Re: same-document references

On 6/28/11 12:30 AM, Larry Masinter wrote:
>
>
>> OK.  So your proposal is that if I copy a same-document link from some
>> document in a browser and paste it into a different browser window it
>> should just fail, right?
>
> I'm not sure I know what you mean by "copy " and "paste" here; copy/paste processing in most windowing systems are based on context-dependent processing and conversion (converting from source format to destination format).  Perhaps it would help to elaborate the scenario you're concerned about. You're not talking about "copy" from a "view source" window. Perhaps you're talking about "copy" from the Address bar?

I'm talking about this scenario:

1)  Open up your favorite web browser.
2)  Go to a web page.  Right click on a link (Ctrl-Click if you're on
     a Mac with one mouse button), or whatever your OS's way to bring
     up a context menu is.
3)  Select "Copy Link Location" or "Copy Link Address" or "Copy Link"
     or whatever your browser calls that context menu option.
4)  Start composing an e-mail to a friend.
5)  Paste the link into the e-mail.

> In any case, I think "thismessage:/" is only useful in cases where the fragment occurs in a document that has no  URI that is useful for accessing the same document without re-retrieval.

OK.  I agree that if you have such a document you need _something_ to 
represent internal links inside it.  Is this situation common?

(Note that Gecko, for example, always has URIs associated with all 
documents; if the document doesn't have a URI by default it makes one up 
as needed in various situations.)

> Let's take the example of a "same-document" reference inside a document that is entirely inside a data: URI:
>
> data:text/html,<html><head></head><body><a%20href="#fragment">Link%20to%20fragment</a><a%20name=fragment>linked%20from%20%earlier</a></body></html>
>
> If you copy #fragment or any URL you construct based on it, into another document, then it will fail.  It MUST fail -- the content linked to by "#fragment" has no URL, so there is nothing you can copy to paste somewhere else that will function. Right? Do you have a proposed solution which satisfies your requirement?

First of all, your URI as written is probably not what you meant (since 
everything after '#' is fragment identifier).  Assuming you had 
correctly escaped the '#', then

data:text/html,<html><head></head><body><a%20href="%23fragment">Link%20to%20fragment</a><a%20name=fragment>linked%20from%20%earlier</a></body></html>#fragment

seems like the obvious URI representing "load this document and scroll 
to the <a name="fragment">.

There are some backwards compat issues there with old Gecko releases 
(which didn't really support fragment identifiers on data: URIs at all) 
and in WebKit (which treats that closing "#fragment" as both as fragment 
identifier _and_ part of the content, as far as I can tell), but those 
seem like implementation bugs to me.  Gecko's, in particular, is fixed 
in current builds.

-Boris

Received on Tuesday, 28 June 2011 05:16:17 UTC