2012-10-15 13 views
6

Dire che ho una pagina a.html e voglio recuperare il testo di un elemento di testo usando il suo id <p id="name">NAME</p> elemento da un'altra pagina b.html.Come utilizzare Javascript per accedere agli elementi di un'altra pagina?

+0

Richiedere la pagina da un 'iframe', quindi ottenere l'elemento. Ma non preferiresti semplicemente che il server restituisca i dati che desideri? –

+0

possibile duplicato di http://stackoverflow.com/questions/3396542/read-html-text-from-another-html-page-using-jquery – Anshu

+0

@ kmb385: Finché la seconda pagina è sullo stesso dominio, è totalmente fattibile – Blender

risposta

12

Utilizzando jQuery get method, è abbastanza semplice:

$.get('a.html', null, function(text){ 
    alert($(text).find('#name')); 
}); 

Raw XHR Request (a grande richiesta):

var request = new XMLHttpRequest(); 

request.addEventListener("load", function(evt){ 
    console.log(evt); 
}, false); 

request.open('GET', 'a.html', true), 
request.send(); 
+3

jQuery non ha il metodo '$ .load', ed è eccessivo usare una grande libreria solo per fare una semplice richiesta XHR. –

+2

@ user1689607 davvero ?! è eccessivo se il browser del client ha già jQuery nella sua cache? – xandercoded

+2

@Xander: come fai a sapere se è nella cache? –

0

Se la pagina è sullo stesso dominio, è possibile utilizzare jQuery. ajax() o jQuery.load()

$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 
0

Tu necessario:

  1. recuperare il contenuto della pagina (si implica che Same Origin Policy non sarà un problema, in modo da non discutere di lavoro intorno a quella).
  2. analizzare che in un DOM HTML
  3. estrarre la parte di che vi preoccupate per DOM
  4. Fai qualcosa con quella DOM

Si tratta di un bel po 'di lavoro. jQuery farà la maggior parte del lavoro per voi:

jQuery('#element_to_load_content_into').load('a.html#name'); // Note use of fragment identifier 
Problemi correlati