2011-08-29 11 views
6

Quiero preguntar por qué el cuadro de diálogo de la interfaz de usuario de jQuery establece automáticamente el ancho en "automático".El cuadro de diálogo de la interfaz de usuario de jQuery establece automáticamente el ancho del marco iframe

A continuación se muestra mi iframe para construir un diálogo.

<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"> 

Tiene un ancho y una altura fijos. Pero cada vez que llamo al "diálogo ('abrir')" el ​​ancho llega a "auto" por sí mismo. En cuanto a la altura, se ajustó a un valor fijo (supongo que se calcula mediante la interfaz de usuario jQuery)

Ya configuré el ancho y el alto al inicializar el cuadro de diálogo. De esta manera:

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 

Pero después de esto:

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

Es éste un comportamiento conocido? ¿Hay alguna manera de que podamos definir el ancho y la altura del iframe por nosotros mismos?

PS. Estoy usando jQuery UI 1.8.16 y jQuery 1.6.2 y el ancho del iframe no cambia cuando inicio el diálogo. Sólo se cambia después de que yo llamo de diálogo ('abierto')

Respuesta

10

En caso de que alguien más se ocupan de esta cuestión y se tropieza con este post, como lo hice , Finalmente encontré una solución que funcionó para mí en: http://enotacoes.wordpress.com/2012/04/19/setting-iframe-width-in-jquery-dialog/

Básicamente, estableces el min-ancho en el estilo de iframe en lugar de (o adicionalmente con) el estilo de ancho.

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

puede definir el elemento de width en init:

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

Ya lo hice. Edité mi pregunta nuevamente. Gracias por la respuesta: D –

+0

¿Qué hay del contenido del diálogo? ¿Tiene un ancho fijo? También puedes intentar editar la UI CSS para definir un 'min-width', pero no estoy seguro si funcionará. – yoda

+0

: D Incluso lo intento con un iframe vacío. El ancho del iframe aún se cambia a "auto". Comportamiento realmente muy extraño. –

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> 

creo scrolling="no" es necesario.

Cuestiones relacionadas