我偶然发现了一个在 URL 中使用多个片段标识符的网站,例如http://www.ejeby.se/#newprodukt#produkt#1075#1(不,这不是我的网站,但我链接到它,这给我带来了问题)。
但这真的正确吗?它似乎确实会给 Safari 带来问题,也可能会给 Internet Explorer 带来问题(传闻,我自己没有尝试过 IE)。
片段标识符不是应该唯一标识吗one在文档中的位置?
这是 Safari 中的错误还是 www.ejeby.se 以错误的方式使用片段标识符?
Edit:Safari 的问题似乎是它转义了 URL 中除第一个 # 之外的所有 #。其他浏览器不这样做。行为正确与否?
从规格来看,fragment可以包含以下字符(我已经扩展了产生式):
fragment = *( ALPHA / DIGIT / "-" / "." / "_" / "~" / "%" HEXDIG HEXDIG / "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" / ":" / "@" / "/" / "?" )
所以,不,该片段不能包含普通的#
;它必须用编码%23
.
但某些浏览器可能会以不同的方式显示它,就像表示有效 UTF-8 字符的百分比编码八位字节序列被它们表示的字符替换一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)