让我们在iframe中重新调整iframe的大小!
所以我有一个html页面,它有一些代码可以在加载时调整iframe的大小。 javascript在头部,看起来像这样:
<script type="text/javascript">
<!--
function resizeIframe(id){
/*
this.obj=obj
//this.obj.width=null
//this.obj.width=window.frames["sizeframe"].document.body.scrollWidth
this.obj.style.height="" // for Firefox and Opera
setTimeout("this.obj.style.height=this.obj.contentWindow.document.body.scrollHeight+(notIE?heightOffset:0)",10) // setTimeout required for Opera
*/
el=document.getElementById(id)
el.style.height="350px" // for Firefox and Opera
setTimeout("el.style.height=el.contentWindow.document.body.scrollHeight+'px'",1) // setTimeout required for Opera
}
// -->
</script>
+++而iframe的代码如下所示:
<iframe name="sizeframe" src="thoughtsinitialview.php" marginwidth="1" marginheight="1" width="596" align="middle" border="0" frameborder="0" onload="resizeIframe(this.id)" id="sizeframe" allowTransparency="true" scrolling="no">
+++ iframe内部的代码都是php,并且在php代码中有一个函数来调整textarea框(表单)的大小。该代码如下所示:
print "<script type='text/javascript'>
function AutoGrowTextArea(textField){
if(textField.clientHeight<textField.scrollHeight){
textField.style.height = textField.scrollHeight + 'px';
if(textField.clientHeight < textField.scrollHeight){
textField.style.height = (textField.scrollHeight * 2 - textField.clientHeight) + 'px';
}
}
}
</script>";
+++那么,这个javascript的snippit由textarea中的以下函数调用,如下所示:
<textarea name='reply' id='reply' rows='1' style=width: 350' onKeyUp='AutoGrowTextArea(this)'>Write a comment...</textarea>
+++所以...在onKeyUp事件处理程序中,当用户添加超过1行的注释时,textarea会调整大小!耶:有趣的时光!但是 - iframe会占用iframe加载时显示的其余显示内容。啊,真可惜! :(
+++所以我在onKeyUp的末尾添加了以下代码,它看起来像这样:
parent.resizeIframe(id)
+++但是,它没有用。我尝试了我能想到的每一个组合,但是我不像这里的向导那样聪明StackOverflow ......
如何?做?一世?当textarea从用户输入调整大小时,使iframe调整大小?
非常感谢并提前给你们带来了业力祝福! (这是针对网站:sitempty.org)