URL中的多个片段标识符是否正确

Joh*_*han 7 url fragment-identifier

我偶然发现了一个在其网址中使用多个片段标识符的网站,例如http://www.ejeby.se/#newprodukt#produkt#1075#1(不,它不是我的网站,但我链接到它,给我带来麻烦).

但这真的是对的吗?它似乎确实导致Safari和可能还有Internet Explorer的问题(传闻,我自己没有尝试过IE).

片段标识符不应该唯一标识文档中的一个位置吗?这是Safari中的一个错误,还是www.ejeby.se以错误的方式使用片段标识符?

编辑:似乎Safari的问题是它逃脱了所有#但是URL中的第一个#.其他浏览器不这样做.是否正确行为?

Gum*_*mbo 9

从规范的角度来看,片段可以包含以下字符(我已经扩展了产品):

fragment    = *( ALPHA / DIGIT / "-" / "." / "_" / "~" / "%" HEXDIG HEXDIG / "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" / ":" / "@" / "/" / "?" )
Run Code Online (Sandbox Code Playgroud)

所以,不,该片段不得包含平原#; 它必须用%23.编码.

但有些浏览器可能会以不同的方式显示它,就像百分比编码的八位字节序列一样,它们代表有效的UTF-8字符会被它们所代表的字符所取代.