javascript - jQuery 对话框不调整 div 中内容的大小

标签 javascript jquery html css jquery-ui-dialog

我有一个可调整大小的 jquery 对话框,当我调整它的大小时,如果我减小尺寸,它只会覆盖内容,或者如果我增加尺寸,它会添加空白。我需要做什么不同的事情才能调整对话框的实际内容大小?

jquery:

function showDialog(div, src) {
    $(div).html('<IFRAME id="orderframe" name="orderframe" frameBorder=0 width="100%" height="100%" style="overflow-x: hidden; overflow-y: scroll;" src="' + src + '"></IFRAME>')
    .dialog({ modal: true, height: '100%', width: 1050, position: ['top', 20], resizable: true });
    return false;
}

html div:

<div id="divId" title="Shopping Cart" style="width:100% !important; height: auto !important; padding: 0 !important;" />

html div 内容:

<body class="generalpage" id="BodyTag" runat="server">
    <form id="Form2" method="post" runat="server" enctype="multipart/form-data">
    <input id="myhiddenfield" type="hidden" value="null" name="myhiddenfield" runat="server" />
    <!-- Content Start -->
    <div id="shoppingCartMaster">
        <div class="shoppingCartWrapper">
            <div class="shoppingCartContent">
                <div class="shoppingCart">
                    <div class="intro">
                        <!-- Instruction Start -->
                        <uc1:Instruction ID="Instruction1" runat="server"></uc1:Instruction>
                        <!-- Instruction End -->
                    </div>
                    <div class="shoppingCartLeft">
                        <div class="shoppingSummaryWrapper">
                            <p id="ErrorAlignment" align="center" runat="server">
                                <asp:Label ID="ErrorMessage" runat="server" Visible="False" CssClass="ErrorMessages"></asp:Label></p>
                            <p id="MessageAlignment" align="center" runat="server">
                                <asp:Label ID="Message" runat="server" Visible="False" CssClass="Messages"></asp:Label></p>
                            <uc1:CCartControl ID="CCartControl1" runat="server"></uc1:CCartControl>
                            <div class="orderTotalWrapper">
                                <div class="uploads">
                                    <div id="wrap">
                                        <img src="Images/Upload.png" width="45" height="45" />
                                        <span>If you need to upload a file pertaining to this order, you will be able to on
                                            the order confirmation page.</span>
                                    </div>
                                    <div class="alignedButtons">
                                        <div class="buttonBlue" style="float: left;">
                                            <asp:LinkButton ID="btnUpdateQty" Text="Update Qty" runat="server"></asp:LinkButton>
                                        </div>
                                        <div class="orderNotes" style="float: left;">
                                            <a href="#" onclick="var hf = $('#txtSpecialInstructionHidden').val();$('#txtSpecialInstruction').val(hf);SpecialInstructions_Update();return false;">
                                                Order Notes/Special Instructions</a>
                                            <asp:HiddenField ID="txtSpecialInstructionHidden" runat="server" />
                                        </div>
                                        <div class="buttonBlue">
                                            <asp:LinkButton ID="btnContinueShopping" Text="Continue Shopping" runat="server"
                                                Visible="true"></asp:LinkButton>
                                        </div>
                                        <div class="buttonRed">
                                            <asp:LinkButton ID="btnCheckout" Text="Checkout" runat="server" Visible="true" OnClientClick="$('#divLoading').show()"></asp:LinkButton>
                                        </div>
                                    </div>
                                    <div id="divLoading" class="loading">
                                        <div style="background: #ffffff; opacity: 1.0; height: 48Px; width: 52Px; padding-top: 9Px;
                                            vertical-align: middle; display: inline-block; margin-top: 200Px;">
                                            <img src="Images/loading2.gif" style="border: none;" align="middle" alt="loading" />
                                        </div>
                                    </div>
                                    <div id="specialInstructions" class="max" style="display: none;" title="Special Instructions:">
                                        <div class="wrap">
                                            <div class="content">
                                                <div class="close">
                                                    <button type="button" value="X" />
                                                </div>
                                                <div class="title">
                                                    Special Instructions:</div>
                                                <div class="copy">
                                                    <asp:TextBox ID="txtSpecialInstruction" runat="server" Rows="3" Columns="55" TextMode="MultiLine"></asp:TextBox>
                                                </div>
                                                <div class="buttonWrap">
                                                    <div class="button A">
                                                        <asp:LinkButton ID="lnkUpdateInstructions" runat="server" OnClientClick="var hf = $('#txtSpecialInstruction').val(); $('#txtSpecialInstructionHidden').val(hf);">Save Instructions</asp:LinkButton></div>
                                                    <div class="button B">
                                                        <asp:LinkButton ID="lnkClearSpecialInstructions" runat="server" OnClientClick="var hf = ''; $('#txtSpecialInstructionHidden').val(hf);">Clear Instructions</asp:LinkButton></div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="orderTotalWrapper">
                            <cc1:TotalDisplay ID="TotalDisplay1" runat="server" HandlingTotalLabel="Handling"
                                ShippingTotalLabel="Shipping" SubTotalLabel="Subtotal" MerchandiseLabel="Merchandise Total:"
                                MerchandiseStyle="order_subtotal_top" HeadingClass="section_titles_right" HeadingString="Order Total"
                                GrandTotalStyle="order_subtotal" GrandTotalLabel="Order Total:" ShippingTotalStyle="order_shipping"
                                ShipmentTotalStyle="order_shipping" LocalTaxTotalStyle="order_tax" StateTaxTotalStyle="order_tax"
                                CountryTaxTotalStyle="order_tax" LocalTaxTotalLabel="Local Tax" StateTaxTotalLabel="State Tax"
                                CountryTaxTotalLabel="Country Tax" BorderStyle="None" TaxShipNotIncludedStyle="order_subtotal"
                                DisplayTaxShipNotIncluded="True" DiscountTotalLabel="Discounts" DiscountTotalStyle="order_discount"
                                GiftCertificateTotalLabel="Gift Certificate" GiftCertificateTotalStyle="gift_cert"
                                DisplaySubTotal="True" DisplayStateTaxTotal="False" DisplayShippingTotal="false"
                                DisplayMerchandiseTotal="True" DisplayShipmentTotal="False" DisplayLocalTaxTotal="False"
                                DisplayHandlingTotal="False" DisplayDiscountTotal="False" DisplayCountryTaxTotal="False"
                                DisplayOrderTotal="False" DisplayGiftCertificateTotal="false" DisplayCODTotal="false"
                                DisplayCartItems="False" DisplayPaymentMethod="False" DisplayEditCart="False">
                            </cc1:TotalDisplay>
                        </div>
                        <div class="merchTotal">
                        </div>
                        <uc2:ProductUpSell ID="ProductUpSell1" runat="server" />
                    </div>
                    <div class="shoppingCartRight">
                        <!-- <div class="buttonRed">
                                                            <asp:LinkButton 
                                                                ID="btnCheckout2" 
                                                                Text="Checkout" 
                                                                runat="server" 
                                                                onclientclick="$('#divLoading').show()"
                                                                Visible="true">
                                                            </asp:LinkButton>
                                                       </div>  -->
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- Content End -->
    </form>
</body>

最佳答案

在看不到 CSS 的情况下,您需要检查加载到 iframe 中的内容本身是否具有响应性 - 如果不是,那么您将看到您所描述的行为。

例如看到这个fiddle它会在 iframe 中加载响应式网站,并且当您调整对话框大小时,它会呈现良好且响应迅速的效果。

$(function() {
  showDialog($("#divId"),"http://www.microsoft.com");
});

但是,请参阅此 fiddle它会加载一个无响应的网站,看起来就像您所描述的那样。

$(function() {
    showDialog($("#divId"),"http://www.saix.net");
});

关于javascript - jQuery 对话框不调整 div 中内容的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26529970/

相关文章:

javascript - 如何在 Angular Controller js中隐藏ng-controller之外的元素?

javascript - 按钮元素可以有子节点吗?

css - 如何使底层div不可点击?

javascript - 在 BinaryJS 中访问字节

javascript - 阅读时刻完整时区名称

javascript - instafeed.js 停止工作 : The access_token provided is invalid

javascript - HTML5/Javascript/jQuery 音频播放器不响应事件?

jquery - jquery ajax实际是如何工作的

javascript - HTML 文件无法连接到 socketio

javascript - 不能将 child 附加到数组中的每个 DOM 元素?