Google chrome AdBlock会改变Chrome呈现页面的方式吗?

Google chrome AdBlock会改变Chrome呈现页面的方式吗?,google-chrome,rendering,google-chrome-extension,adblock,Google Chrome,Rendering,Google Chrome Extension,Adblock,我正在设计/构建一个网站,像一个优秀的小开发者一样,我一直在关注在所有流行浏览器中的表现——Firefox、Chrome、Safari(适用于Windows)和Chrome的当前版本,以及Internet Explorer(8,而不是9预览版) 无论如何,在我看来,Chrome上的一切都非常好,但我的一个朋友一直在给我一些反馈,他告诉我“哦,顺便说一句,你的网站在Chrome上表现得非常糟糕。”我给了他标准的“在我的机器上工作”回复,他回答说他认为这一定是一个扩展问题 他给了我一个他使用的流行扩

我正在设计/构建一个网站,像一个优秀的小开发者一样,我一直在关注在所有流行浏览器中的表现——Firefox、Chrome、Safari(适用于Windows)和Chrome的当前版本,以及Internet Explorer(8,而不是9预览版)

无论如何,在我看来,Chrome上的一切都非常好,但我的一个朋友一直在给我一些反馈,他告诉我“哦,顺便说一句,你的网站在Chrome上表现得非常糟糕。”我给了他标准的“在我的机器上工作”回复,他回答说他认为这一定是一个扩展问题

他给了我一个他使用的流行扩展的简短列表,经过一点尝试和错误后,我发现问题在于AdBlock。关于实际渲染问题的细节,我不会让您感到太多厌烦,但我们注意到了一些奇怪的事情。这并不是因为AdBlock在页面上阻塞了一些东西,而是Chrome中AdBlock的存在造成了问题。我知道这一点,因为即使a)我暂停AdBlock,以及b)我明确排除该页面/站点被AdBlock时,问题仍然存在

我已经解决了这个问题(我之前在Firefox 3.0的“BrowserShot”中注意到了这个问题,但只解决了FireBug内部的错误——我还没有将它应用到真实的副本上),但这让我怀疑是否还有其他问题需要注意

这似乎也不是怪癖与标准模式的问题。document.compatMode仍然显示“CSS1Compat”(标准模式),当我删除doctype定义以触发怪癖模式时,站点仍然正确呈现(尽管在某些地方更改了一些填充-无需担心)

以前有人注意过这个问题吗?AdBlock是否从根本上改变了Chrome呈现页面的方式,即使它在特定站点上不活动


编辑#1:

它变得更奇怪了。我试图创建一个示例,但由于某些原因,它不会呈现不正确。最后,我将原始(即失败的)html复制到一个新文件中,并将整个CSS文件放入文档的
标记中。它仍然有效

经过一点尝试和错误,我确定问题只存在于通过
而不是通过
包含css时

有人能解释一下这里发生了什么事吗


编辑#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后,Chrome重新显示内容的方式似乎有问题-您可以通过以下步骤再现完全相同的渲染:

  • 禁用Adthwart,重新加载chrome
  • 加载页面(两个页面中的任意一个)
  • 进入Chrome inspector-选择div#内部元素
  • 停用,然后重新激活
    浮动:右CSS属性

  • 如果一个bug报告还不存在的话,最好是提交一个bug报告——要么是WebKit,要么是Chrome bug。

    该死。我刚刚用adblockforchrome完成了一份报告。我想我得再提交一份。有什么想法吗?a)为什么只有在安装adblock时才会发生这种情况,b)为什么只有
    而不是
    ?看起来这是webkit,而不仅仅是chrome。我在safari上使用了firebug lite bookmarket,并且能够重新编程。我的猜测是:b)对于
    ,CSS属性必须在http请求后加载,而对于
    ,这些CSS属性可以立即用于WebKit;a) Adblock通过添加CSS样式进行操作-我猜在使用Adblock/
    的情况下,首先加载Adblock CSS,然后加载
    CSS,这会触发错误。(在其他3种情况下,
    CSS在任何其他CSS之前加载。)在提交错误报告时,请随意添加指向错误报告的链接。
    CSS:
    
        #outer {
          border: 1px solid #000;
          width: 700px;
        }
    
        #inner {
          float: right;
          width: 540px;
        }