none
[Javascript Básico] Evento Mudança de Página RRS feed

  • Pergunta

  • Olá pessoal.

    Qual é o evento que é executado quando um usuário está numa pagina de um site, e então ele clica em um link na pagina e vai para outra página do mesmo website?

    Meu onbeforeunload só funciona quando ele fecha o navegador ou aba, e o onunload não funciona.

    Obrigado. 

    segunda-feira, 29 de agosto de 2011 19:49

Respostas

  • é so vc usar o evento "unload" do jquery  que executa sempre que o usuario sair da pagina, seja fechando, digitando outro endereço ou outra coisa. Segue exemplo:

     

    $(window).unload(function () {

    // Faz o que eu quero  


    });

     

    Tente esse. Utilizo assim e funciona legal. Só nao esqueça de fazer referencia ao .js do jquery.

    Abraço!

    quarta-feira, 31 de agosto de 2011 12:07

Todas as Respostas

  • Olá, Poderia colocar no OnClientClick a nome da função
    OnClientClick="javascript:Teste(); return false;"

    function Teste(){
            window.location.href = "pagina.aspx";
        }

    segunda-feira, 29 de agosto de 2011 20:46
  • Cara você não entendeu não quero mudar de página! eu quero executar algo quando ele mudar de página!
    segunda-feira, 29 de agosto de 2011 21:38
  • Tenta usar o método do post do formulário...

     

    __doPostBack(<__EVENTTARGET>, <EVENTARGUMENT>);

    * __EVENTTARGET que pode ser o nome do controle

    * __EVENTAGUMENT que pode ser um argumento opcional

     

    Caso seja para um controle...

    __doPostBack('NomeDoControle', '');

     

    Caso não seja para um controle...

    __doPostBack('','argumento opcional');

    Nesse caso, quando o evento disparar vai passar pelo Page.IsPostBack... É só tratar usando Request.Form("__EVENTTARGET") e o Request.Form("__EVENTARGUMENT")...

     

    Espero que ajude!


    Felipe Ribeiro
    Se esta postagem foi útil, marque-a como tal

    terça-feira, 30 de agosto de 2011 13:58
  • Cara, 

     

    pelo que entendi funciona assim, 

     

    Quando clico em um link e ele vai para outra página...  a primeira ação que ele chama na página que esta sendo aberta é a PAGE_LOAD

     

    Para ficar mais claro,   e levando em conwideração que você esta usando o Visual Studio para este projeto, 

    Vá a té a página que vai ser aberta e aperte o botão F7,   verá a página de código com o primeiro método  PAGE_LOAD,

    AHH.

     Lembre-se de realizar o teste  

    IF(Page.IsPostBack){

    }

    Para verificar se a chamada é POST ou GET. ok?

    Espero ter ajudado

     

     

     


    http://fparmezani.wordpress.com
    terça-feira, 30 de agosto de 2011 16:29
  • É uma forma mais não é prática porque meu site tem links nos menus e no corpo da pagina, ou seja teria de colocar no load de todas as paginas do site pra fazer o teste. e se ele sair pra outro site que não seja o meu? pronto já não funcionaria. Preciso de algum evento executado na pagina em que o usuário está quando ele sai da pagina indo para um link ou site. Para quando o usuário fechar o navegador ou aba tem o OnBeforeUnload e para quando ele clica em links ou sai para outro site?

     

    terça-feira, 30 de agosto de 2011 16:39
  • Então indico a resposta do Felipe Ribeiro, 

    É uma das melhores opções.

     

    Que tipo de ação você quer fazer com este evento CLICK?

     


    http://fparmezani.wordpress.com
    terça-feira, 30 de agosto de 2011 17:42
  • Felipe me desculpa sou iniciante ainda. Não entendi o que você explicou!
    terça-feira, 30 de agosto de 2011 19:23
  • rapaz, se vc quer ter mais controle sobre o link vc pode fazer o seguinte:

    - Substituir a propriedade href (propriedade que redireciona) pelo o evento onclick. Seu link deve ter essa estrutura:

    <a href='MinhaPagina.asx'>Teste</a>

    Voce deve fazer assim:

    <a href='javascript:void(0);' rel='MinhaPagina.aspx' onclick='MinhaFuncao(this)'>Teste</a>

    Na linha acima, estou colocando uma função javascript "void(0)" na propriedade href do link. Essa função é somente para o link não executar nada no href e pra ele ter comportamento de link, ja que se vc não colocar nenhum href o link parece um label. Feito isso, vc atribui uma função para quando vc clicar no link, no caso a função é "MinhaFunção(this)". Então declare essa função na pagina. Fica assim:

    <scrip type='text/javascript'>

    function MinhaFuncao(meuLink)

    {

    // faz o que eu tou querendo antes de redirecionar

    window.location.href = $(meuLink).attr("rel"); // irá redirecionar. Jquery esta sendo usado nesse exemplo

    }

    </script>

    terça-feira, 30 de agosto de 2011 19:47
  • É uma boa sugestão Marcos. mais vocês não estão entendendo o que quero. quero um evento que ocorra quando ele sai da página, na sua solução marcos e em todas as outras que estão mandando, se eu sair do meu site indo para outro site qualquer digitando um outro endereço no navegador essa situação não será captada pelo código de vocês.

    Agradeço todas as repostas, mais preciso de algo que faça exatamente o que quero. um evento que rode quando ele sai da pagina clicando em outro link dentro da mesma pagina OU quando ele digitar um outro endereço no navegador e sair do meu site assim.

    quarta-feira, 31 de agosto de 2011 11:50
  • é so vc usar o evento "unload" do jquery  que executa sempre que o usuario sair da pagina, seja fechando, digitando outro endereço ou outra coisa. Segue exemplo:

     

    $(window).unload(function () {

    // Faz o que eu quero  


    });

     

    Tente esse. Utilizo assim e funciona legal. Só nao esqueça de fazer referencia ao .js do jquery.

    Abraço!

    quarta-feira, 31 de agosto de 2011 12:07
  • Faça assim oh:

     

    1) Script:

    <script language="C#" runat="server">

          seu código...

    </script>

     

    2) No seu HTML:

    Na tag BODY adicione o método OnBeforeUnload associando ao código do Script...

     

    Espero que funcione...


    Felipe Ribeiro
    Se esta postagem foi útil, marque-a como tal
    quarta-feira, 31 de agosto de 2011 12:15