为什么这个JavaScript广告只有在<iframe>?</iframe>中加载时才会被裁剪

时间:2010-10-07 22:34:36

标签: javascript html css internet-explorer iframe

作为我正在开展的项目的一部分,我需要在<iframe>内加载AdMeld广告(主要广告网络)。由于复杂的跨浏览器限制,我无法直接调用add。

这是一个非常简单的页面,可以加载我们的广告位之一,其中包含旋转的广告素材:

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&amp; 7和Opera 10(我到目前为止观察到的唯一浏览器),偶尔(如每5-30次页面加载大约1次),广告上方还有一个额外的差距:

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

由于这些浏览器具有相对糟糕的开发人员工具 - 或者至少我无法弄清楚如何有效地使用它们 - 我没有找到任何有关可能发生的事情的线索。似乎没有任何明显的模式,例如始终显示问题的特定广告创意,或者导致这种模式一致发生的导航方法。

可能导致这种情况的原因,我该怎么做才能阻止它?我在显示广告的页面上尝试了其他样式,包括:

* {
  position: fixed;
}

虽然这似乎可以缓解这个问题,但它也打破了部分广告素材的布局。我对所出现的广告素材没有任何控制权,因此我可能无法依赖任何影响广告的任何影响深远的广告;我也无法预测广告素材中可能出现哪些元素以预防性地设置它们。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在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>