Existe uma maneira de fazer ligações normais carregar automaticamente através de ajax, em vez de normalmente?

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

Pergunta

Eu não me explicou isso muito bem.

Mas o que eu quero dizer é que, se eu tenho um script ajax que carrega o conteúdo de uma página em um elemento DIV, através da função 'loadpage (' alguma_coisa.php ') ;, em vez de ir ao redor manualmente fazendo isso para todos links, há uma maneira de ter um script que automaticamente faz toda carga de ligações regulares por essa função ajax?

Tal como no Facebook, suas cargas em seu perfil através de ajax, mas se você olhar para o seu código, eles apenas têm uma ligação regular para o perfil.

Felicidades!

Foi útil?

Solução

Claro, você pode fazê-lo com jQuery.

Este script vai através do documento, encontra cada elemento âncora e se liga um manipulador de eventos para o evento clique de cada um. Quando o elemento âncora é clicado, o manipulador de eventos encontra o atributo href e cargas que página em #targetDiv (você pode chamar este div o que quiser, é claro).

<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>

Outras dicas

Você pode usar JQuery para isso (se eu entendi sua pergunta direita).

Primeiro, você pode fazer a função loadpage () da seguinte forma:

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

    return false;
}

.load () não é suportado por todos os navegadores embora. Se você quiser fazer isso sem .load (), então você pode conferir .get (). Para mais informações sobre .load (), dê uma olhada http://docs.jquery.com/Ajax / load

Eu estou supondo que seria algo como isto:

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

Isto faria com que todas as tags <a> na página de chamar uma função que faz o download de um documento HTML a partir do atributo href da tag, tira-lo da tag do corpo, e substituir o conteúdo da tag body da página atual com o conteúdo do novo tag corpo. Desta forma, é mais fácil trabalhar isso sem JavaScript, bem como integrá-lo em um site existente.

Para usá-lo, você coloca isso em uma tag <script> na cabeça de sua página principal, ou em um arquivo JS externo.

Por favor note, no entanto, que este código só atualiza o conteúdo da tag <body>, a cabeça (incluindo o título de tag) permanece intocado. Você pode precisar adicionar código extra para atualizar coisas como esta.

Simples e Nice. Veja isso: Bjax

Uso:

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

Finalmente, incluir este na cabeça do seu html:

$('a').bjax();

Para mais configurações, check-out demonstração aqui: Bjax Demonstração

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top