作为我正在进行的元素的一部分,我需要在 <iframe>
中加载一个 AdMeld 广告(一个主要的广告网络) .由于复杂的跨浏览器限制,我无法直接调用添加。
这是一个非常简单的页面,它加载了我们的一个广告位,其中包含旋转的广告创意:
http://troy.onespot.com/static/stack_overflow/4949/iframe.html
我可以整天加载此页面,并且广告始终如预期的那样显示 - 我在页面上包含的唯一样式是:
* {
margin: 0;
padding: 0;
}
这会删除 <body>
上的任何边距和填充元素,因此广告紧靠视口(viewport)的左上角。
此页面更准确地模拟了我在我的元素中加载广告的方式:
http://troy.onespot.com/static/stack_overflow/4949/test.html
它包括一个 <iframe>
加载前一个页面,以及上面相同的基本样式以删除边距和填充。通常,此页面的呈现输出看起来与第一个示例中的完全相同。
但是,在 Internet Explorer 6 & 7 和 Opera 10(我目前观察到的唯一浏览器)中,偶尔(大约每 5-30 次页面加载中有 1 次)会有额外的间隙在广告上方:
http://skitch.com/troywarr/d4pbg/ad-example
由于这些浏览器的开发人员工具相对糟糕——或者至少我不知道如何有效地使用它们——我没有找到任何关于可能发生的事情的线索。似乎没有任何明显的模式,例如始终显示问题的特定广告创意,或导致此问题持续发生的导航方法。
这可能是什么原因造成的,我该怎么做才能防止它发生?我在展示广告的页面上尝试了其他样式,包括:
* {
position: fixed;
}
虽然这似乎确实缓解了问题,但它也破坏了一些广告创意的布局。我对出现的创意没有任何控制权,所以我可能不能依赖任何影响深远的样式,因为它有破坏任何广告的风险;我也无法预测哪些元素可能会出现在广告创意中以预防性地设计它们。
在此先感谢您的帮助!
最佳答案
在您的 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>
关于javascript - 为什么这个 JavaScript 广告只有在 <iframe> 中加载时才会被裁剪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886377/