Почему эта реклама JavaScript обрезается только тогда, когда она загружена в <iframe>? - PullRequest
0 голосов
/ 08 октября 2010

В рамках проекта, над которым я работаю, мне нужно загрузить объявление AdMeld (крупная рекламная сеть) внутри <iframe>. Я не могу вызвать добавление напрямую из-за сложных кросс-браузерных ограничений.

Вот очень простая страница, которая загружает одно из наших рекламных мест с вращающимися рекламными объявлениями:

http://troy.onespot.com/static/stack_overflow/4949/iframe.html

Я могу загрузить эту страницу весь день, и объявление всегда выглядит так, как ожидалось - единственный стиль, который я включил на страницу:

* {
  margin: 0;
  padding: 0;
}

При этом удаляются все поля и отступы для элемента <body>, поэтому объявление встает напротив левого верхнего угла области просмотра.

Эта страница более точно имитирует загрузку рекламы в моем проекте:

http://troy.onespot.com/static/stack_overflow/4949/test.html

Он включает <iframe>, который загружает предыдущую страницу, и тот же базовый стиль выше для удаления полей и отступов. В общем, визуализированный вывод этой страницы выглядит точно так же, как в первом примере.

Однако в Internet Explorer 6 & 7 и Opera 10 (единственные браузеры, в которых я наблюдал это до сих пор), иногда (например, примерно в 1 из каждых 5-30 раз загрузки страницы) возникает дополнительный пробел над объявлением:

http://skitch.com/troywarr/d4pbg/ad-example

Поскольку в этих браузерах есть относительно паршивые инструменты разработчика - или, по крайней мере, я не могу понять, как их эффективно использовать - я не нашел никаких подсказок о том, что может происходить. Похоже, что не существует каких-либо очевидных шаблонов, таких как конкретное рекламное объявление, которое всегда показывает проблему, или метод навигации, который заставляет это происходить последовательно.

Что может быть причиной этого, и что я могу сделать, чтобы предотвратить это? Я экспериментировал с дополнительными стилями на странице, где показывается реклама, в том числе:

* {
  position: fixed;
}

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

Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 17 января 2011

Попробуйте это на своем iFrame:

<iframe src="iframe.html?sfgate_btf" frameborder="0" scrolling="no" width="300" height="250" marginheight="0" marginwidth="0" scrolling="no" hspace="0" vspace="0"></iframe>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...