C'è un modo di fare collegamenti normali caricano automaticamente tramite ajax, piuttosto che di solito?

StackOverflow https://stackoverflow.com/questions/1449074

Domanda

non mi sono spiegato bene.

Ma quello che voglio dire è, se ho uno script ajax che carica il contenuto di una pagina in un elemento DIV, attraverso la funzione 'loadpage (' whatever.php ') ;, invece di andare in giro a fare questo per tutto manualmente link, c'è un modo di avere uno script che esegue automaticamente tutti i collegamenti regolari carico tramite questa funzione ajax?

Come su Facebook, il tuo profilo carichi attraverso ajax, ma se si guarda al loro codice, hanno solo un collegamento regolare con il profilo.

Cheers!

È stato utile?

Soluzione

Certo, si può farlo con jQuery.

Questo script passa attraverso il documento, scopre ogni elemento di ancoraggio e si lega un gestore di eventi per l'evento click di ciascuno. Quando l'elemento di ancoraggio viene cliccato, il gestore di eventi trova l'attributo e carichi href quella pagina in #targetDiv (è possibile chiamare questo div quello che vuoi, naturalmente).

<script type="text/javascript"
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
  $("a").click(function() {
    $("#targetDiv").load(($(this).attr("href") + " body");
    return false;
  });
});
</script>

...

<!-- In your document body, this is the div you'd load the pages into. -->
<div id="targetDiv"></div>

Altri suggerimenti

È possibile utilizzare JQuery per questo (se ho capito la tua domanda a destra).

In primo luogo si può fare la funzione loadpage () come segue:

function loadpage(divId, url) {
    $('#' + divId).load(url);

    return false;
}

.load () non è supportata da tutti i browser, però. Se si vuole fare questo senza .load (), allora è possibile controllare .get (). Per maggiori informazioni su .load (), dare un'occhiata a http://docs.jquery.com/Ajax / caricare

Sto assumendo che sarebbe andato qualcosa come questo:

$(document).ready(function(){
    $("a").click(function(){
        $("body").load($(this).attr("href") + " body");
        return false;
    });
});

Questo renderebbe tutti i tag <a> nella pagina chiamare una funzione che scarica un documento HTML dall'attributo href del tag, striscia fuori di essa la modifica del corpo, e sostituire il contenuto del tag body della pagina corrente con il contenuto della nuova tag body. In questo modo, è più facile lavorare in questo senza JavaScript, così come integrarlo in un sito esistente.

Per usarlo, si colloca questo in un tag <script> nella testa della pagina principale, o in un file JS esterno.

Si prega di notare, tuttavia, che questo codice aggiorna solo il contenuto del tag <body>, la testa (compreso il tag title) rimane intatta. Potrebbe essere necessario aggiungere codice aggiuntivo per aggiornare cose come questa.

semplice e piacevole. Controllalo: Bjax

Utilizzo:

<script src="bjax.min.js" type="text/javascript"></script>
<link href="bjax.min.css" rel="stylesheet" type="text/css" />

Infine, includere questo nella testa del vostro html:

$('a').bjax();

Per ulteriori impostazioni, cassa demo qui: Bjax Demo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top