Изменяет ли AdBlock способ отображения страниц в Chrome? - PullRequest
3 голосов
/ 25 октября 2010

Я занимаюсь проектированием / созданием сайта, и, как хороший маленький разработчик, я слежу за тем, как все работает во всех популярных браузерах - текущих версиях Firefox, Chrome, Safari (для Windows) и Chrome.и Internet Explorer (8, а не 9-й превью).

В любом случае, в Chrome все выглядело абсолютно нормально, но мой друг, который давал мне отзывы, сказал мне: «О, кстати, вашсайт ужасно рендерит в Chrome. "Я дал ему стандартный ответ «работает на моей машине», и он ответил, что, по его мнению, это проблема расширения.

Он дал мне краткий список популярных расширений, которые он использует, и через некоторое времяметодом проб и ошибок я обнаружил, что проблема заключается в AdBlock.Я не буду утомлять вас подробностями настоящей проблемы рендеринга, но мы заметили нечто странное.Дело не в том, что AdBlock что-то блокировал на странице, а в том, что простое присутствие AdBlock в Chrome вызывало проблему.Я знаю это, потому что проблема сохраняется, даже когда а) я приостанавливаю AdBlock и б) когда я специально исключаю эту страницу / сайт из блокировки AdBlock.

С тех пор я исправил проблему (я заметил это ранее вFirefox 3.0 «BrowserShot», но исправил ошибку только в FireBug - я еще не применил ее к реальной копии), но это заставило меня задуматься, есть ли другие проблемы, о которых мне следует знать.

Похоже, это не вопрос «Причуд против режима стандартов».document.compatMode по-прежнему показывает «CSS1Compat» (стандартный режим), и когда я удаляю определение doctype для запуска режима причуд, сайт по-прежнему отображается правильно (хотя с некоторыми отступами, измененными местами - не о чем беспокоиться).

Кто-нибудь заметил эту проблему раньше?Изменил ли AdBlock способ отображения страниц в Chrome, даже если он не активен на этом конкретном сайте?


Edit # 1:

Это становится страннее.Я пытался создать пример, но по какой-то причине он не будет отображаться неправильно.В конечном итоге я скопировал исходный (то есть с ошибкой) HTML-файл в новый файл и бросил весь CSS-файл в тег <style> в <head> документа.Он все еще работал.

Немного проб и ошибок, и я определил, что проблема существует только при включении css через <link rel="stylesheet">, но не через <style>.

Может ли кто-нибудь пожалуйста объяснить, что здесь происходит?


Edit # 2:

Воткод, с которым я работаю:

HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>Demo</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
    <div id="outer">
      <img src="placeholder.png" width="150px" height="150px" />
      <div id="inner">
        <h1>Test</h1>
        <p>Lorem ipsum blah blah blah</p>
      </div>
    </div>
  </body>
</html>

CSS:

    #outer {
      border: 1px solid #000;
      width: 700px;
    }

    #inner {
      float: right;
      width: 540px;
    }

Если вы хотите попробовать это самостоятельно, я поместил некоторые файлы на свой сервер:

1 Ответ

0 голосов
/ 25 октября 2010

Кажется, проблема в том, как Chrome перекомпоновывает контент после изменения css - вы можете воспроизвести точно такой же рендеринг, выполнив следующие действия:

  1. Отключить Adthwart, перезагрузить хром.
  2. Загрузить страницу (любую из двух).
  3. Зайдите в инспектор Chrome - выберите внутренний элемент div #.
  4. Деактивируйте, а затем снова включите атрибут float: right; CSS.

Было бы неплохо подать отчет об ошибке, если он еще не существует - это либо ошибка WebKit, либо Chrome.

...