【发布时间】:2011-11-25 10:15:34
【问题描述】:
可以跳到编辑以获取最新的解释。
我似乎无法将通过document.write() 写入的广告设置到固定位置。它在 IE 之外的所有其他浏览器中都能正常工作,包括 IE9。
这里是一个例子:http://htinteractive.com/bottom_bar/demo.html
任何建议将不胜感激。我的想法不多了。
谢谢。
编辑:
我已将问题缩小到我遇到的以下 IE 问题。为了简化它...
<style type="text/css">
#temp1
{
position:fixed;
bottom:0;
height:100px;
width:100px;
border:solid 2px red;
}
</style>
<!--WORKS IN IE-->
<div id="temp1">
<script type="text/javascript">
document.write("<scr" + "ipt type=\"text/javascript\">\nif(typeof(cachebuster) == \"undefined\"){var cachebuster = Math.floor(Math.random()*10000000000)}\nif(typeof(dcopt) == \"undefined\"){var dcopt = \"dcopt=ist;\"} else {var dcopt = \"\"}\nif(typeof(tile) == \"undefined\"){var tile = 1} else {tile++}\ndocument.write('<scr'+'ipt src=\"http://ad.doubleclick.net/adj/shz.bloomington/home;pos=728x90_1;' + dcopt + ';tile=' + tile + ';sz=728x90;ord=' + cachebuster + '?\"></scr'+'ipt>');\n</scr" + "ipt>");
</script>
</div>
<!--FAILS TO FIX POSITION IN IE-->
<script type="text/javascript">
document.write('<div id="temp1">');
document.write("<scr" + "ipt type=\"text/javascript\">\nif(typeof(cachebuster) == \"undefined\"){var cachebuster = Math.floor(Math.random()*10000000000)}\nif(typeof(dcopt) == \"undefined\"){var dcopt = \"dcopt=ist;\"} else {var dcopt = \"\"}\nif(typeof(tile) == \"undefined\"){var tile = 1} else {tile++}\ndocument.write('<scr'+'ipt src=\"http://ad.doubleclick.net/adj/shz.bloomington/home;pos=728x90_1;' + dcopt + ';tile=' + tile + ';sz=728x90;ord=' + cachebuster + '?\"></scr'+'ipt>');\n</scr" + "ipt>");
document.write('</div>')
</script>
无论如何,我真的需要第二种方法来工作,我正在努力弄清楚如何做。
谢谢。
【问题讨论】:
-
IE9之前的IE根本不支持
position: fixed。您必须使用 JavaScript 解决方案来伪造它。 -
这很奇怪...对我来说一直到 IE 7 都可以正常工作...?我真正的问题似乎是通过 document.write 将对象写入具有固定定位的元素。
-
真的吗?好吧,我当然可能是错的,尽管我几乎可以肯定它在 IE6 中不起作用(没有)。我会在一秒钟内尝试 7 个,因为如果它确实有效,它肯定会很整洁 :-)
-
IE6 确实打破了一切,我个人不再关心它,只是拍打这些坏男孩之一...ie6nomore.com
-
position:fixed适用于 IE7 及更高版本。然而,最初的问题并没有具体说明他遇到的问题是哪个版本。
标签: javascript internet-explorer css