Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML元素';Internet Explorer未设置的高度属性_Javascript_Internet Explorer_Firefox_Iframe_Height - Fatal编程技术网

Javascript HTML元素';Internet Explorer未设置的高度属性

Javascript HTML元素';Internet Explorer未设置的高度属性,javascript,internet-explorer,firefox,iframe,height,Javascript,Internet Explorer,Firefox,Iframe,Height,我编写了一个Javascript脚本,它根据IFrame的内容自动调整IFrame的高度。这是在框架页面的内容产生后立即完成的;在Firefox中没有问题,但在IE中,脚本被正确执行,但没有看到任何效果:在回调函数中调用该方法。有什么建议吗? 如果我使用一个按钮来执行这个方法,它会工作得很好,并且帧会被调整大小 我眼前没有密码;调整大小的方法如下所示: function resizeFrame(){ var frame = parent.document.getElementsById(

我编写了一个Javascript脚本,它根据IFrame的内容自动调整IFrame的高度。这是在框架页面的内容产生后立即完成的;在Firefox中没有问题,但在IE中,脚本被正确执行,但没有看到任何效果:在回调函数中调用该方法。有什么建议吗? 如果我使用一个按钮来执行这个方法,它会工作得很好,并且帧会被调整大小

我眼前没有密码;调整大小的方法如下所示:

function resizeFrame(){
    var frame = parent.document.getElementsById(window.me);
    frame.style.height = document.offsetHeight;
}
调用函数如下所示:

//init function
bunding.doSomeWork(callbackFunction);
...

function callbackFunction()
{
    //does some HTML output
    resizeFrame();
}

我正在使用Salesforce Ajax库。

我发现在某些情况下,IE中的属性,如offsetHeight、clientHeight和scrollHeight,在添加新内容时设置不正确。我不得不使用setTimeout,以便在能够从这些属性中获得准确值之前,允许重新绘制显示。

很难在看不到代码的情况下真正调试代码,但下面的示例对我在IE和Firefox中很有效

<!DOCTYPE html>
<html>
<head>
  <title>so-iframeResize</title>
  <script type="text/javascript" >

    onframeload=function(iframe) {
      var doc = iframe.contentWindow.document;
      iframe.style.height = Math.max(
        doc.getElementsByTagName("html")[0].offsetHeight,
        doc.body.offsetHeight // IE prefers this value
      ) + "px";
    };

  </script>
</head>
<body>
  <div id="page">
    <iframe src="about:blank" onload="onframeload(this)">
    </iframe>
  </div>
</body>
</html>

因此,我重新调整了尺寸
onframeload=函数(iframe){
var doc=iframe.contentWindow.document;
iframe.style.height=Math.max(
doc.getElementsByTagName(“html”)[0]。视线外,
doc.body.offsetHeight//IE首选此值
)+“px”;
};

问题是根据当前iframe的高度调整大小更新了onframeload函数,以根据内容的偏移设置高度这是一个非传统的解决方案…明天我将尝试此解决方案…非常烦人!TNX它工作得很好!似乎调用resize方法delayed可以让IE知道框架的高度。奇怪的行为。tnx