内容越来越小时如何调整iframe的大小?

时间:2012-10-23 15:09:49

标签: iframe resize

我已经谷歌搜索了一段时间,并在iframe大小调整上发现了一些类似的话题 实际上我从那些中学到了很多东西,比如
1. Resize iframe to content with Jquery
2. Adding Dynamic Contents to IFrames
感谢那些为回答这些问题做出贡献的人 但是我还有一些问题没有解决, 那么你们有什么想法,当内容越来越小时如何调整iframe的大小? 在我的情况下,我试图使用
获得内容高度 document.documentElement.scrollHeight或document.body.scrollHeight,但它不起作用。
我想如果我们需要一个高度,很难从外面获得正确的内容高度 要传递给resize函数的参数?

2 个答案:

答案 0 :(得分:1)

您需要使用document.body.offsetHeight。

答案 1 :(得分:0)

在不同的网站和浏览器上进行Whit测试,我终于得到了代码高度最佳的结果:

     /**
       * Draw the a chart.js line chart with data from the specified view that
       * overlays session data for the current week over session data for the
       * previous week.
       */
      function renderWeekOverWeekChart(ids) {

        // Adjust `now` to experiment with different days, for testing only...
        var now = moment(); // .subtract(3, 'day');

        var thisWeek = query({
          'ids': ids,
          'dimensions': 'ga:date,ga:nthDay',
          'metrics': 'ga:sessions',
          'start-date': moment(now).subtract(1, 'day').day(0).format('YYYY-MM-DD'),
          'end-date': moment(now).format('YYYY-MM-DD')
        });

        var lastWeek = query({
          'ids': ids,
          'dimensions': 'ga:date,ga:nthDay',
          'metrics': 'ga:sessions',
          'start-date': moment(now).subtract(1, 'day').day(0).subtract(1, 'week')
              .format('YYYY-MM-DD'),
          'end-date': moment(now).subtract(1, 'day').day(6).subtract(1, 'week')
              .format('YYYY-MM-DD')
        });

        Promise.all([thisWeek, lastWeek]).then(function(results) {

          var data1 = results[0].rows.map(function(row) { return +row[2]; });
          var data2 = results[1].rows.map(function(row) { return +row[2]; });
          var labels = results[1].rows.map(function(row) { return +row[0]; });

          labels = labels.map(function(label) {
            return moment(label, 'YYYYMMDD').format('ddd');
          });

          var data = {
            labels : labels,
            datasets : [
              {
                label: 'Last Week',
                fillColor : 'rgba(220,220,220,0.5)',
                strokeColor : 'rgba(220,220,220,1)',
                pointColor : 'rgba(220,220,220,1)',
                pointStrokeColor : '#fff',
                data : data2
              },
              {
                label: 'This Week',
                fillColor : 'rgba(151,187,205,0.5)',
                strokeColor : 'rgba(151,187,205,1)',
                pointColor : 'rgba(151,187,205,1)',
                pointStrokeColor : '#fff',
                data : data1
              }
            ]
          };

          new Chart(makeCanvas('chart-1-container')).Line(data);
          generateLegend('legend-1-container', data.datasets);
        });
      }