Tengo una página con la dinámica de los datos cargados por algo de ajax y un montón de javascript.

la página contiene una lista de la cual el usuario puede elegir y cada valor seleccionado se carga de nuevos datos a la página.

Uno de estos elementos de datos que es de un url a un iframe.

Yo uso jQuery BARBACOA: Botón Back & Consulta de la Biblioteca para simular el navegador de nuevo comportamiento.

Todo funciona bien, además el hecho de que cuando hago clic en el botón atrás para la primera vez que el iframe vuelve a su anterior ubicación y, a continuación, necesito haga clic de nuevo para hacer la página de volver.

Hay una manera de desactivar el iframe de la espalda de comportamiento?

  • Estoy interesado en la respuesta a esta; mi entendimiento (posiblemente incorrecta) es que la página tiene poco o ningún control sobre lo que hace el navegador con el botón «atrás». O la tecla «siguiente» para esa materia.
InformationsquelleAutor kfiroo | 2010-02-11

5 Comentarios

  1. 56

    He encontrado la respuesta a mi problema, supongo que podría ser útil para otros.

    El problema fue con la forma en que me asignaron nuevas direcciones Url a mi Iframe, he usado Jquery, así que se veía algo así como que:

    $('#myIFrame').attr('src',newUrl);

    A la hora de asignar la dirección URL de esa manera se añade una nueva entrada para el navegador de la lista de direcciones Url visitadas para volver a.

    Ese no era el comportamiento deseado, así que después de buscar un poco en google he encontrado que se puede asignar una nueva dirección URL a un objeto Iframe sin agregarlo a la ‘lista’, parece que:

    var frame = $('#myIFrame')[0];  
    frame.contentWindow.location.replace(newUrl);

    De esta manera mi botón atrás se comportan exactamente como se esperaba.

    btw, tengo mi respuesta de aquí.

    Espero que esto fue útil para ti como lo fue para mí.

    • Muchas gracias, este era exactamente el problema que estaba teniendo. Realmente me ayudó.
    • Esto sólo funciona para el iframe con el mismo dominio que el sitio web está incrustado en. No trabajo para la cruz de dominio iframes.
    • ¿Cómo puedo utilizar este código, cuando presente el formulario con target=»myIFrame» a punto de iframe??
  2. 4

    Aceptado la respuesta no parece funcionar si se intenta establecer una cruz-dominio de la URL para el IFrame. Como solución, he separado el IFrame de la DOM, antes del establecimiento de la src (con jQuery).

    //remove IFrame from DOM before setting source, 
    //to prevent adding entries to browser history
    var newUrl = 'http://www.example.com';
    var iFrame = $('#myIFrame');
    var iFrameParent = iFrame.parent();
    
    iFrame.remove();
    iFrame.attr('src', newUrl);
    iFrameParent.append(iFrame);
    • Esto no parece funcionar en Chrome v70.
  3. 1

    Sugiero crear un hipervínculo dentro de su iframe. lo llaman ‘Volver’ y poner a href javascript:history.espalda(-1)Que es el mejor que usted puede hacer creo.

  4. 0

    Básicamente, usted necesita para evitar la adición de la nueva historia entradas en el iframe, historia.replaceState introducidas en HTML5 funciona en la mayoría de los casos.

    history.pushState(state, title, url);
    • Dentro del iframe? ¿Cómo puedo saber el iframe a hacer eso si src="http:/google.com" por ejemplo?

Dejar respuesta

Please enter your comment!
Please enter your name here