Ir para conteúdo
Fórum Script Brasil
  • 0

(resolvido) Recarregar O Javascript De Uma Página


heltonritter

Pergunta

Pessoal, é o seguinte... seguindo o desenvolvimento do menu que abre ao clicar com o direito...

adaptei o script para só abrir o menu ao clicar em determinados locais da página.

http://scriptbrasil.com.br/forum/index.php?showtopic=108841

mas para cada lugar o menu de contexto deve ser diferente. Esse menu diferente é gerado o arquivo JS com a formatação dele em uma página PHP, que é chamada via AJAX.

Segue o esquema de como funciona:

1- Carrega a página

2 - passa o mouse por cima de um objeto clicável com o direito, passando parametro que tipo de objeto é isso, e o id desse objeto... ex.: fazmenu('notica',1512) ... ou fazmenu('video',98). Para cada um desses tem um menu diferente que deve ser aberto.

Quando esses passo 1 e 2 é feito pela primeira vez.. ok, passa o id, tipo, monta o menu de acordo... 100%

mas quando passa o mouse em cima de outro objeto, ele gera de novo o arquivo que monta o menu e faz exibir o menu.

O arquivo está atualizado (uma página php monta ele), mas quando clica com o direito, aparece o menu do primeiro item que foi passado o mouse em cima.

Eu teria que quando terminou de "gerar" o arquivo de dados de dados, com os quais o menu vai ser montado, recarregar os js da página.

Como faço isso?

tinha tentado assim, colocar no início do body

<div id="scriptsmenusdireitos">
<!-- aqui vai ficar novamente os scripts recarregados-->
&lt;script type="text/javascript" src="milonic_src.js"></script>    
&lt;script type="text/javascript" src="mmenudom.js"></script>
&lt;script type="text/javascript" src="right_menu_data.js"></script>
&lt;script type="text/javascript" src="contextmenu.js"></script>
</div>
e aí quando a requisição AJAX estivesse completa...
var blocoJsRecarregadoNovosValores = '&lt;script type="text/javascript" src="milonic_src.js"></script>    '+
                         '&lt;script type="text/javascript" src="mmenudom.js"></script>'+
                         '&lt;script type="text/javascript" src="right_menu_data.js"></script>'+
                         '&lt;script type="text/javascript" src="contextmenu.js"></script>';
             // coloca de volta estes scripts na página
             //alert(blocoJsRecarregadoNovosValores);
             document.getElementById('scriptsmenusdireitos').innerHTML = blocoJsRecarregadoNovosValores;

mas isso não funciona...

Como posso fazer?

O arquivo dos dados do menu que eu estou gerando de novo é este:

http://www.milonic.com/menusample27.php

(role a barra de rolagem para baixo até aparecer um código-fonte)

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

cara pelo que ta acontecendo , acho que o erro esta na funcao que constroi o menu!

eu estou lendo o livro ajax em ação! no livro o autor sempre comeca a função zerando e testando as variaveis!

tipo

var x="";

pode ser que da maneira que você esta fazendo apos ter clicado em uma parte ele constroi 1 objeto , dai quando você clica em outra parte ele constroi outro , mas sempre referencia o primeiro!

você poderia mandar seu codigo pra min da uma olhada?

joaojok@hotmail.com

Link para o comentário
Compartilhar em outros sites

  • 0

Eu já lí esse livro, conceitualmente muito bom, é do tipo para situar um "perdido" no que é, como funciona e deslumbrar com o que da para fazer.

Hoje de manhã tive a idéia salvadora. Essa tranqueragem de ajax não é mais preciso, como sempre, as soluções são simples.

o que eu fiz.

De dentro do arquivo que tem os dados para construir o menu, não consigo colocar nenhuma variável de JavaScript... mas consigo chamar uma função (de uma olhada no link que postei antes)

Declarei uma variável global... que seto o valor dela (com o parâmetro da URL que quero abrir) no mouseouver de qualquer elemento clicável com o direito.

ex1.:

<img src="../forward.gif" width="17" height="16" id="figura" onMouseOver="svrm('figura',1210)">
ex2 .:
<p id="parnot" onMouseOver="svrm('texto',458)">
    texto aqui
</p>
aí chamo a função que contrói o menu, dizendo que eu quero um menu compatível para um texto ou uma figura, e digo qual é o ID disso no banco de dados. aí a função é executada, e seta na minha variável global de parâmetros (valorparametro) um valor.
function svrm(tipo,valor) // Set Values Right Menu
 {
    if(ns4){
        contextDisabled = false;
        _d.captureEvents(Event.MOUSEDOWN);
        valorparametro = valor;
        contextMenu = tipo;
        _d.onmousedown=rclick;
    }
    else{
        contextDisabled = false;
        valorparametro = valor;
        contextMenu = tipo;
        _d.onmouseup=rclick;
        _d.oncontextmenu=new Function("return false")
    }
    
}
a função rckic é do site lá que eu baixei... o código JS está compactado... impossível mexer.... então lá no js dos dados que montam os menus, fiz uma chamada a outra função.
...
...
with(milonic=new menuname("figura")){
    margin=3;
    overflow="scroll";
    style=contextStyle;
    aI("text=Menu da figura;url=java script:goToUrl('pagina_destino.php');");
}

with(milonic=new menuname("texto")){
    margin=3;
    overflow="scroll";
    style=contextStyle;
    aI("text=Menu do texto;url=java script:goToUrl('pagina_destino.php');");
}
então no menu eu digo qual a página de destino, o que é fixo, e em qualquer lugar fora daí eu consigo acessar a variável global minha... então...
function goToUrl(urltoGo)
 {
    window.location.href=urltoGo+'?'+valorparametro; 
 }

Resolvido o problema!

Obrigado pessoal!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...