Проблемы с iframes prettyPhoto в проверке HTML5

При попытке проверить сайт, содержащий ссылки prettyPhoto, открывающие iFrame, я получаю следующие ошибки на любом href, содержащем ? Iframe=true&height=100%

Неверное значение атрибута href для элемента a: компонент запроса содержит знак процента, за которым не следуют две шестнадцатеричные цифры.

& не начал ссылаться на символ. (&, вероятно, следовало бы экранировать как &.)

Я пытался заменить & с & в базе данных, в которой хранятся ссылки, и даже% на%, но это также не удовлетворяло валидатор. Затем я попытался & amp; и & # 37; который правильно показывал href как?iframe=true&height=100%, но это больше не влияло на размер iframe.

Есть ли способ решить эту проблему, или я просто должен признать, что существует 15 ошибок, если фреймы работают?

1 ответ

Решение

Здесь есть два слоя.

  1. Знак процента имеет особое значение в URL, поэтому его необходимо экранировать с помощью %25,

  2. Если вы вставляете это значение в тег как HTML, вы должны использовать & для амперсанда. Если, с другой стороны, вы делаете это с помощью Javascript (например, element.setAttribute('href', 'foo?bar1&bar2')), тогда вам это не нужно.

Другие вопросы по тегам