2012-05-31 15 views
6

Me gustaría saber cómo solo puedo actualizar un elemento específico en mi sitio web, en lugar de toda la página web? El elemento del que estoy hablando es una aplicación flash que carga bastante lento y puede experimentar tiempos de espera de conexión. Quiero permitir al usuario que actualice solo esa aplicación elemento/falsh. ¿Cómo puedo hacer eso? A continuación tengo una función Ajax que actualiza un elemento HTML pero no estoy seguro de cómo aplicarlo a mi situación.Habilitando la actualización de elementos html específicos solo

<head> 
    <script type="text/javascript"> 
     function loadXMLDoc() { 
      var xmlhttp; 
      if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp = new XMLHttpRequest(); 
      } else { // code for IE6, IE5 
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange = function() { 
       if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
        document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
       } 
      } 
      xmlhttp.open("GET", "ajax_info.txt", true); 
      xmlhttp.send(); 
     } 
    </script> 
</head> 
<body> 
    <div id="myDiv"> 
     <h2>Let AJAX change this text</h2> 
    </div> 
    <button type="button" onclick="loadXMLDoc()">Change Content</button> 
</body> 
+0

por qué no hacer el flash actualizar el contenido dentro de ella? en lugar de tener AJAX cargue el swf en el DOM una y otra vez – Joseph

+0

Buen punto, pero no tengo control sobre el archivo flash. Es una aplicación compleja desarrollada por otra persona. Si la entiendo incorrectamente, por favor corrígeme –

+0

¿Podría ponerlo en un iFrame? Creo que establecer la ubicación.href de un iFrame hará que se actualice. –

Respuesta

15

Pruebe esto:

function reload(){ 
 
    var container = document.getElementById("yourDiv"); 
 
    var content = container.innerHTML; 
 
    container.innerHTML= content; 
 
    
 
    //this line is to watch the result in console , you can remove it later \t 
 
    console.log("Refreshed"); 
 
}
<a href="javascript: reload()">Click to Reload</a> 
 
    <div id="yourDiv">The content that you want to refresh/reload</div>

esperar que funcione. Déjame saber

1

Trate de crear una función de JavaScript que se ejecuta esto:

document.getElementById("youriframeid").contentWindow.location.reload(true); 

O puede utilizar una solución HTML:

<html> 
<body> 
<center> 
     <a href="pagename.htm" target="middle">Refresh iframe</a> 
     <p> 
     <iframe src="pagename.htm" name="middle"> 
     </p> 
</center> 
</body> 
</html> 

Tanto podría ser lo que está buscando ...

+0

Gracias por su respuesta. La solución de Javascript que publicó: ¿cómo funciona exactamente, se activa automáticamente o puede ser solicitada/activada por el usuario? –

+0

Hola Dexter ... Si puedes ver, hay un enlace "Actualizar iframe". Si el usuario hace clic en esto, actualizará el iFrame. Por lo tanto, requiere activación/intervención del usuario. – JudeJitsu

0

intenta vaciar tu innerHtml cada vez. como este:

Element.innerHtml="";

Cuestiones relacionadas