2012-05-31 23 views
6

Vorrei sapere come posso aggiornare solo un elemento specifico nel mio sito web, invece dell'intera pagina Web? L'elemento di cui sto parlando è un'applicazione flash che carica molto lentamente e potrebbe verificarsi un timeout della connessione. Voglio consentire all'utente di aggiornare solo quell'elemento/falsh app. Come lo faccio? Di seguito ho una funzione Ajax che aggiorna un elemento HTML ma non sono sicuro di come applicarlo alla mia situazione.Abilitazione dell'aggiornamento solo per specifici elementi html

<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

perché non fare il flash aggiornare il contenuto al suo interno? invece di avere AJAX caricare lo swf nel DOM ancora e ancora – Joseph

+0

Buon punto, ma non ho il controllo del file flash. È un'app complessa sviluppata da qualcun altro. Se ho capito male, correggi il problema –

+0

Potresti inserirlo in un iFrame? Penso che l'impostazione location.href di un iFrame farà sì che si aggiorni. –

risposta

15

Prova questo:

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>

Speranza che funziona. Fammi sapere

1

Prova a creare una funzione JavaScript che gestisce questo:

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

O forse utilizzare un soluzione HTML:

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

Entrambi potrebbe essere quello che state cercando ...

+0

Grazie per la risposta. La soluzione Javascript che hai postato: come funziona esattamente, viene attivata automaticamente o può essere richiesta/attivata dall'utente? –

+0

Ciao Dexter .. Se riesci a vedere, c'è un link "Aggiorna iframe". Se l'utente fa clic su questo, aggiornerà l'iFrame. Quindi richiede l'attivazione/l'intervento dell'utente. – JudeJitsu

0

prova a svuotare il tuo innerHtml ogni volta. proprio come questo:

Element.innerHtml="";

Problemi correlati