2011-08-29 40 views
6

Tôi muốn hỏi tại sao hộp thoại Giao diện người dùng jQuery được đặt chiều rộng thành "tự động" tự động?Hộp thoại giao diện người dùng jQuery đang đặt chiều rộng khung nội tuyến tự động

Dưới đây là iframe của tôi được xây dựng một hộp thoại.

<iframe id="pklist3" class="ui-dialog-content ui-widget-content" frameborder="0" src="http://localhost/picker" style="width: 570; height: 410px; min-height: 0px;" scrolltop="0" scrollleft="0"> 

Nó có chiều rộng cố định và chiều cao. Nhưng mỗi khi tôi gọi là "hộp thoại ('mở')" chiều rộng được "tự động" của chính nó. Đối với chiều cao nó được đặt thành một số giá trị cố định (tôi đoán nó được tính bằng giao diện người dùng jQuery)

Tôi đã đặt chiều rộng và chiều cao khi khởi chạy hộp thoại. Như thế này:

var dg = {}; 
dg.title = this.title; 
dg.autoOpen = false; 
dg.modal = true; 
dg.overlay = { 
opacity: 0.4, 
background: "#000" 
     };        
dg.resizable = false; 
$('#pklist3').dialog(dg); //iframe width is still fixed value up to this line 

Nhưng sau này:

$('#pklist3').dialog('open'); //iframe width gets "auto" automatically 

Đây có phải là một hành vi được biết đến? Có cách nào chúng ta có thể xác định chiều rộng và chiều cao của khung nội tuyến bởi chính chúng ta không?

PS. Tôi đang sử dụng jQuery UI 1.8.16 và jQuery 1.6.2 và chiều rộng của khung nội tuyến không thay đổi khi tôi khởi tạo hộp thoại. Nó chỉ thay đổi sau khi tôi gọi thoại ('mở')

Trả lời

10

Trong trường hợp bất cứ ai khác là đối phó với vấn đề này và tình cờ khi bài này, như tôi đã làm , Cuối cùng tôi đã tìm thấy một giải pháp phù hợp với tôi tại: http://enotacoes.wordpress.com/2012/04/19/setting-iframe-width-in-jquery-dialog/

Về cơ bản, bạn đặt chiều rộng tối thiểu theo kiểu khung nội tuyến thay vì (hoặc bổ sung) với kiểu chiều rộng.

<iframe src="someurl" width="100%" height="100%" frameborder="0" 
     scrolling="no" style="min-width: 95%;height:100%;"/> 
0

Bạn có thể xác định các yếu tố width trên init:

$('#something').dialog({ 
    width: '100px' 
}); 
+0

Đã làm điều đó. Tôi đã chỉnh sửa lại câu hỏi của mình. Cảm ơn bạn đã phản hồi: D –

+0

Còn nội dung hộp thoại thì sao? Nó có chiều rộng cố định không? Bạn cũng có thể thử chỉnh sửa CSS giao diện người dùng để xác định 'chiều rộng tối thiểu ', không chắc chắn nó sẽ hoạt động mặc dù .. – yoda

+0

: D Tôi thậm chí thử nó với một khung nội tuyến trống. Chiều rộng khung nội tuyến vẫn được đổi thành "tự động". Hành vi rất kỳ quặc. –

0
<iframe src="<%= AppConfig[:running_url] %>" frameborder="0" scrolling="no"></iframe> 
<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
    $("iframe").height($(window).height()); 
    $("iframe").width($(window).width()); 
    }); 
</script> 

Tôi nghĩ scrolling="no" là cần thiết.

Các vấn đề liên quan