inside - parse xml jquery




jQuery load body from HTML esterno (4)

Sto usando jQuery e sto provando a caricare il corpo da un file html esterno.

Funziona se provo a caricare qualche div:

$('body').load('example.html #content');

Ma non sono in grado di fare qualcosa del genere:

$('body').load('example.html body');


Assicurati di utilizzare jQuery 1.5.1 e non 1.5. La funzione di caricamento in 1.5 aveva problemi. Ho risposto a domande simili a jquery .load () non funziona

Un'altra cosa è provarlo in diversi browser per assicurarsi che non sia un problema del browser. Chrome non ti consente di utilizzare il carico quando lavori da localhost senza apportare qualche ritocco.


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

jQuery utilizza la proprietà .innerHTML del browser per analizzare il documento recuperato e inserirlo nel documento corrente. Durante questo processo, i browser spesso filtrano gli elementi dal documento come <html>, <title> o <head> elementi. Di conseguenza, gli elementi recuperati da .load () potrebbero non essere esattamente come se il documento fosse stato recuperato direttamente dal browser.

Leggendo quanto sopra, sembra possibile che il tuo browser restituisca solo il corpo innerHTML. Questo ovviamente dovrebbe essere lo stesso di richiedere il body , ma forse sta causando un errore perché il body non viene trovato?

Suggerirei di provare un altro browser.


Quando si utilizza il caricamento senza un selettore, esso rimuove i <html> , <head> e <body> , ma lascia intatti tutti i figli di <head> e <body> , compresi tag titolo, script e stile. Tuttavia, quando si utilizza un selettore, viene applicato dopo che il tag body è stato rimosso , quindi è impossibile confrontarlo.

Invece, avvolgi tutto il contenuto del tuo corpo all'interno di un altro tag e seleziona invece quel tag:

<html><head><title>Hello!</title</head>
<body>
  <div id="jquery-load-point">
    ... <!-- rest of body content -->
  </div>
</body>
</html>

Ora puoi caricarlo in questo modo:

$("#destination").load("http://my.url/to/page #jquery-load-point");

Se vuoi caricare tutto il corpo, $('body').load('example.html'); dovrebbe essere abbastanza

Se no, potresti spiegare perché?

Ad ogni modo, la soluzione fornita da Steve è quella giusta.







load