Странное поведение iframe в Firefox

#firefox #iframe #infinite-loop

#firefox #iframe #бесконечный цикл

Вопрос:

У меня есть сайт, который обычно встраивает весь контент в iframe. Если вы попытаетесь получить доступ к тому же контенту напрямую через браузер, мы загрузим фреймворк сайта и вместо этого загрузим этот контент в iframe для вас (все это обрабатывается реферером, определяющим, внутренний это запрос или внешний).

Это отлично работает в Google Chrome, но Firefox, похоже, отказывается запрашивать содержимое в iframe, если оно совпадает с URL родительского окна. Ожидается ли это? Я мог бы представить, что они делают это, чтобы предотвратить бесконечные циклы, но я нигде не могу найти это документированным. Странная часть в том, что я могу обойти это, добавив что-либо дополнительное к строке запроса. Конечно, я бы предпочел не делать этого.

И если это ожидаемое поведение, то то, что я делаю, не такая уж хорошая идея?

Ответ №1:

Использование iFrames в целом не самый популярный план, но это может быть оправдано. Однако поведение Firefox следует ожидать. Ваши два варианта:

1) Когда вы обнаружите, что пользователь загружает только внутренний фрейм, перенаправьте (через HTTP-ЗАГОЛОВОК) на родительскую страницу и используйте строку запроса, чтобы сообщить этой странице, какой внутренний фрейм загружать.

2) Сделайте то, что вы делаете сейчас, и добавьте строку запроса, полную случайных данных (amp;framebuster =231784783243253426543), чтобы все было красиво и раздельно.

Комментарии:

1. В настоящее время я делаю 2), но это кажется уродливым взломом.

2. И это уродливый взлом. Я не думаю, что это имеет какие-то особые последствия, но с этим довольно трудно жить.