2011-01-18 23 views
7

Sto cercando di ottenere innerHTML di un DIV che si trova sulla pagina esterna. È possibile farlo usando questo codice javascript gentile?Ottieni innerhtml da pagina esterna con Javascript

<script type="text/javascript"> 
     $(document).ready(function(){ 
      var html = document.getElementById("glr1").src='/my_page.html'.innerHTML ; 
      alert(html); 
     }); 
    </script> 

risposta

6

la funzione di caricamento jquery permette di specificare un elemento id per caricare

$('#result').load('ajax/test.html #container'); 

http://api.jquery.com/load/

+0

Ho iniziato a scriverlo inizialmente, ma ho pensato che voleva HTML, non caricare quell'elemento. – scragz

0

Non è possibile ottenere l'html da un html esterno a causa di problemi di sicurezza.

È possibile ottenere l'html solo da una cornice situata nello stesso dominio.

0

È possibile eseguire ciò che si desidera, ma direi che è necessario recuperare il file HTML esterno utilizzando XMLHttpRequest.

2

Poiché sembra che si sta utilizzando jQuery, qualcosa di simile a questo dovrebbe essere abbastanza vicino:

var html; 
$.get("my_page.html", function(data){ 
    html = $(data).find('#glr1').html(); 
}); 
2

è possibile creare un nascosto elemento, caricare la pagina in quella, e poi tuffarsi in esso per individuare il soddisfare.

$(function() { 
    $('body').append($('<iframe></iframe>', { 
    css: { display: none }, 
    src: 'my_page.html', 
    id: 'my_mage', 
    load: function() { 
     var html = $('#my_page').contents().find('whatever').html(); 
    } 
    }); 
}); 
0
non

abbastanza. Solo se la pagina desiderata è sullo stesso dominio e sullo stesso protocollo, potresti provare ad incorporarla in un iframe o potresti usare ajax. jQuery ha già implementato un modo per recuperare solo una parte di una pagina esterna, tramite ajax:
$.get(url+"#"+id);, dove id è l'ID del div. quindi avresti qualcosa di simile:

 
var aux = window.location.href.split('/'), 
id = 'glr1', 
page = 'my_page.html'; 
$.get(
    aux.splice(0,aux.length-1).join('/') + '/' + page + '#' + id, 
    function(){alert(arguments[0]);} 
); 

Problemi correlati