根据iframe内容调整对话框大小

时间:2014-01-08 13:05:01

标签: jquery html iframe dialog

嗨,大家好,我这两天一直在讨厌这个问题。

似乎无法提出解决方案

Fiddle

$(function(){
    $('a').on('click', function(e){
        e.preventDefault();
        $('<div/>', {'class':'myDlgClass', 'id':'link-'+($(this).index()+1)})
        .html($('<iframe/>', {
            'src' : $(this).attr('href'),
            'style' :'width:100%; height:100%;border:none;'
        })).appendTo('body')
        .dialog({
        'title' : $(this).text(),
        width : 450,
        height : 350,
            buttons: [ { 
                    text: "Close",
                    click: function() { $( this ).dialog( "close" ); } 
                } ]
        });
    });
});

iframe被自动调整为100%,但对话框不会自动调整大小。我不想要页面滚动条。在自动调整大小对话框上尝试了很多序列,但没有任何作用。

我有内部php表单,我用href链接,所有表单都不同,需要根据iframe大小调整对话框大小。 我确实有css所以格式化用户表单并不是他们都在DIV中的问题

问题是对话框滚动条。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我更新了你的小提琴:http://jsfiddle.net/NMJCw/2/

resize: function (event, ui) {
   var heightDifference = 50;
   var widthDifference = 50;
   $('iframe').height($(this).height() - heightDifference);
   $('iframe').width($(this).width() - widthDifference);
},

使用对话框的resize事件,您可以设置iframe的宽度和高度。我还添加了两个变量,它们是iframe和对话框之间的维度差异 - 您需要计算正确的值并更改它们。

同时调整大小时,会出现一个奇怪的滚动条。也许你可以检查它并设置一些溢出:隐藏(我没有找到设置溢出的正确元素)。