/ / jQuery संवाद: सामग्री को उसके iframe में लोड करने के बाद आकार सेट करना - जावास्क्रिप्ट, jquery, jquery-ui

jQuery संवाद: सामग्री के बाद सेटिंग आकार को इसके आईफ्रेम में लोड किया गया है - जावास्क्रिप्ट, jquery, jquery-ui

मैं यहां एक तरह के रहस्य को सुलझा रहा हूं। मेरे पास निम्नलिखित कोड है जिसे jQuery डायलॉग में एक सामग्री को iframe में लोड करने पर कहा जाता है। मैं सामग्री के लिए उचित रूप से संवाद आकार सेट करना चाहता हूं। संवाद की चौड़ाई और ऊँचाई सेट करने के लिए पहली दो (टिप्पणी की गई) पंक्तियाँ लेकिन दूसरी दो (असम्बद्ध) लाइनें काम नहीं करती हैं (प्रदर्शित ऊँचाई इससे थोड़ी छोटी होनी चाहिए और खड़ी की गई सामग्री से अधिक होनी चाहिए, चौड़ाई ठीक है)। और यह भी सच है कि भले ही दोनों दावे पारित हों, जिसका अर्थ है कि तीसरी दलीलें समान मूल्यों की होनी चाहिए चाहे मैं दो में से किस संस्करण का उपयोग करता हूं ओओ। कोई भी सुझाव यह कैसे संभव हो सकता है?

frameElem.load(function() {
frameDoc = frameElem.contents();
var boxWidth = Math.min($(window).width(), frameDoc.width());
var boxHeight = Math.min($(window).height(), frameDoc.height());
console.assert(boxWidth == frameDoc.width());
console.assert(boxHeight == frameDoc.height());

//works correctly:
//$(boxElem).dialog("option", "width", frameDoc.width());
//$(boxElem).dialog("option", "height", frameDoc.height());

//does not work
$(boxElem).dialog("option", "width", boxWidth);
$(boxElem).dialog("option", "height", boxHeight);

$(boxElem).dialog("option", "position", "center");
$(boxElem).dialog("open");
});

मैंने jsfiddle प्रदान करने की कोशिश की, लेकिन iframe भाग नहीं कर सका :(।

संपादित करें: अजीब बात यह है कि अगर मैं संवाद तत्व को देखता हूं, तो इसे ऊंचाई मिली है: ऑटो; और चौड़ाई: दोनों संस्करणों में शैली में 677px। तो ऊंचाई सेट करने में कुछ गड़बड़ है।

उत्तर:

जवाब के लिए 0 № 1

तो बात यह है कि यह दो अलग ऊंचाइयों को मुद्रित करता है पहले 543 और फिर 586

    console.log(frameDoc.height());
$(boxElem).dialog("option", "width", frameDoc.width());
console.log(frameDoc.height());

निश्चित रूप से क्यों नहीं लेकिन कम से कम व्यवहार अब समझ में आता है