从iframe调用父项中的函数,关于iframe调整大小的函数

时间:2015-02-19 08:37:51

标签: javascript php html iframe resize

让我们在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)

0 个答案:

没有答案