Ipad трудности с более чем одним # - PullRequest
1 голос
/ 26 августа 2011

У меня есть URL, который либо выглядит так

http://www.URL.com/photography.html#project

или это

http://www.URL.com/photography.html#img1

или даже это

http://www.URL.com/photography.html#project#img1

Это прекрасно работает во всех браузерах, но в iPad URL-адрес изменен и выглядит следующим образом

http://www.URL.com/photography.html#project%23img1

Это не позволяет моему конкретному коду работать, могу ли я кодировать эту секунду # другим способом, если устройство является ipad? Я действительно не хочу начинать перекодирование для ipad другим способом, если смогу помочь.

Любые идеи приветствуются. Спасибо!

1 Ответ

0 голосов
/ 13 августа 2012

Думал, что я откопаю это, хотя вопрос уже довольно старый.Возможно, все еще есть люди, которые борются с одной и той же темой.


Хотя использование нескольких идентификаторов фрагментов не является явно незаконным , кажется, что использование более одного противоречит спецификации, посколькусостояния:

Идентификатор фрагмента следует URL-адресу всего объекта, от которого он отделен знаком хеша (#).

Таким образом, вы можете утверждать, чтодолжен присутствовать только один хеш-знак.Браузеры, принимающие и анализирующие несколько символов этого типа, не могут полагаться на то, что это неопределенное поведение.

Вместо этого я бы предложил вам создать идентификатор фрагмента в другой форме, как вы уже намекали.

http://www.URL.com/photography.html#project/img1

В этом случае вы можете использовать простое выражение для получения функций.

window.location.hash.split("/"); // yields ["project", "img1"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...