iframes dinámicos.
Ya comenté que shared cost hace un uso intensivo de ajax mediante iframes.
el único problema que tiene eso es que tienes que disponer de un marco por cada sección que quieras recargar.
Por ejemplo para recargar el contenido central, el menu lateral y la barra de navegación tienes que asignar cada una de las páginas a un frame y esperar a que terminen.
Si bien es manejable, (que van a ser como mucho 10 marcos?) no mola, quiero decir que no es chulo ni cool ni nada de nada y si me equivoco en las previsiones puede acabar siendo un dolor de huevos y que coño un programa libre es para darle amor.
Así que decidí pasarme a los marcos dinámicos, o lo que es lo mismo crearlos al vuelo segun los necesite y destruirlos al terminar... a que suena mucho más chulo :)
function displayInfo(sText, sItem)
{
var m_display = document.getElementById(sItem);
m_display.innerHTML = sText;
}
function changeFrame(name, file)
{
removeMe(name);
var frame = document.createElement('iframe');
frame.id = name;
frame.src = file;
frame.width = 0;
frame.height= 0;
frame.frameborder = 0;
document.body.appendChild(frame);
}
function removeMe(name)
{
$("iframe").remove('#' + name);
}
las funciones clave son removeMe y changeFrame.
RemoveMe usa jquery para destruir el marco id name y changeFrame lo que hace es destruir el marco si ya existia (por los dobles clicks) y despues crea mediante js standard un nuevo frame invisible, que se me acaba de ocurrir que también podría simplemente aplicar estilo a los iframes... tengo que probarlo porque puede ser útil para depurar simplemente cambiando el css desde la parte de administración.
los retornos en las páginas son una linea más largos ya que es el propio frame el que ha de notificar cuando debe ser cerrado.
window.onload = function (){
var container = document.getElementById("load");
parent.displayInfo(container.innerHTML, 'main');
parent.removeMe(this.name);
}
pero a cambio es extremadamente cómodo de hacer y de hecho es tan reusable que puedo simplemente hace un include del js y pista.
Ale me piro a currar.







este post tiene 0 comentarios:
Publicar un comentario en la entrada
al principio