我目前在一个网站上工作,它使用了大量的cfwindow对象,我想知道是否有人知道一种动态调整窗口大小的方法,以便所有内容都适合不需要滚动条的情况。
我尝试过使用overflow=visible配置,但似乎没有什么不同。
提前感谢您的建议。
发布于 2010-06-09 14:37:24
在使用弹出窗口显示图像时,这是一种典型的任务。这是通过测量图像大小并使用window.resizeBy(w,h)调整衍生窗口的大小来完成的。我认为这仍然是适用的方法。
第二个类似的选项是计算服务器端所需的大小,并将其传递给cfwindow属性width和height。比方说,您可以将内容捕获到cfcontent中并检查其长度(以字符为单位)。
请注意,当您处理文本内容时,这两种方法都是不可靠的,因为呈现字体对于用户来说可能真的不同。因此,保留一些额外的高度可能是有用的。
另一个棘手的方法是检查已经打开的窗口的滚动条是否存在。有一个属性scrollHeight,您可以将其与clientHeight进行比较并增加高度。这可能会在一些浏览器中产生一些丑陋的“跳跃”效果,但它应该可以工作。
我很感兴趣,并尝试了最后一个方法的快速测试。第一次生成弹出窗口,w/h=200,此答案文本(上面的单词)作为内容。接下来,我在弹出窗口中执行了以下操作:
<script type="text/javascript">
window.onload = function() {
// check the size before resize
alert("Window Width = " + window.innerWidth + "\nWindow Height = " + window.innerHeight + "\nScrollHeight = " + document.body.scrollHeight);
if (window.innerHeight < document.body.scrollHeight) {
// here's where we can play with resize steps and other specific trickery
// now we're trying to expand size a bit
window.resizeBy(window.innerWidth + 50, window.innerHeight + 50);
}
// check the size after resize
alert("Window Width = " + window.innerWidth + "\nWindow Height = " + window.innerHeight + "\nScrollHeight = " + document.body.scrollHeight);
}
</script>警报#1:
Window Width = 200
Window Height = 200
ScrollHeight = 783警告#2:
Window Width = 450
Window Height = 450
ScrollHeight = 358请注意,我不能100%确定(现在也不能确认) window.innerWidth/Height属性是否可以在IE中工作--您也应该考虑document.documentElement.clientWidth/Height属性。
希望这能有所帮助。
https://stackoverflow.com/questions/3001918
复制相似问题