Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nitinha

Erro no JS do site após algum tempo no ar

Recommended Posts

Oi gente, tudo bem? Há pelo menos um ano a minha empresa tem um sistema de intranet. Sempre funcionou perfeitamente, porém semana passada sem ninguém aparentemente ter mexido em uma linha sequer do código o sistema deu problema. Não fui eu que desenvolvi.

 

O que acontece é que ao entrar em alguma página do sistema é ativado um pop up que mostra o nosso site (aquele que todos têm acesso, não a intranet) com o título de alarme, após isso a cada 5 segundos o erro fica reaparecendo (5 segundos após fechar a aba). Perguntei para o dono da empresa e ele me informou que outra empresa que era parceira nossa tinha criado a intranet e que nunca existiu uma função pop-up no sistema.

 

Alguém tem alguma ideia do que pode estar acontecendo? Eu ja rastreei a função do pop-up e até já encontrei o que a faz aparecer a cada 5 segundos. No backup antigo também se encontra esse código, porém nunca deu este erro. Qualquer ajuda é muito bem vinda, se precisar posso explicar melhor.

 

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste o código, ou um link para o site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Javascript do "alarme" - que até então nunca tinha aparecido

function clicou()
{
   document.getElementById('conteudo3').innerHTML='<h1>Ola mamae!</h1><input type="button" value="me feche!" onclick="close_dialog();" /><input type="button" value="desmodalizar!" onclick="desmodaliza_dialog();" />';
   disp_dialog('teste3','conteudo3',true,undefined,m_x,m_y);
}

function fechar()
{
  // alert("exemplo de funcao chamada ao fechar a janela!");
}




/* funcoes que podem ser chamadas pelojavascritp

desmodaliza_dialog()      para tirar o translucido de um dialogo modal, e permitir interacao com a janela de baixo
dialog_available()        checa se ja tem algum dialogo aparecendo na tela
close_dialog()            fecha o dialogo 


*/


/*
 as funcoes abaixo sao as importantes
*/



var cancelcallbackdialog;
var cancelcallbackid;
var m_x=0;  //posicao geral do mouse
var m_y=0;



/*
   title = titulo da janela
   conteudo = "id" da div de conteudo desejado
   modal = true para dialogo modal (obscurecendo a janela de fundo que chamou), ou false para dialogo normal sem afetar janela de baixo
   oncancel = nome da function que vai ser chamado adcionalmente quando a janela for fechada
   posx e posy, posicao da janela

*/
function disp_dialog(title,conteudo,modal,oncancel,posx,posy)
{

   if (!dialog_available()) return;

   var j = document.getElementById("janelinha");

   var m = document.documentElement;
   if (modal) {
     var o = document.getElementById("overlay");

     o.style.left = "0px";
     o.style.top = "0px";
     o.style.width = m.scrollWidth+"px";
     o.style.height = m.scrollHeight+"px";
     o.style.display="";
   }

   j.style.left = m.clientLeft + posx + "px";
   j.style.top =  m.clientTop  + posy + "px";

   document.getElementById("j_title").innerHTML=title;
   document.getElementById(conteudo).style.display="";

   j.style.display="";

   cancelcallbackdialog=oncancel;
   cancelcallbackid=conteudo;

}  

function desmodaliza_dialog()
{
  document.getElementById("overlay").style.display="none";
} 

function dialog_available()
{
   return (document.getElementById("janelinha").style.display == "none");
} 

function close_dialog()
{
   document.getElementById("overlay").style.display="none";
   document.getElementById("janelinha").style.display="none";
   document.getElementById(cancelcallbackid).style.display="none";
   if (cancelcallbackdialog != undefined) cancelcallbackdialog(); 
}

function clickclose_dialog()
{
  close_dialog();
}


var drag_dragok = false;
var drag_y,drag_x,drag_d,drag_dx,drag_dy;
var drag_n=500;

function mup()
{
   drag_dragok=false;
   //document.getElementById("janelinha").onmousemove=null;
   //document.onmousemove=null;
   document.onmousemove=getMouseCoordinates;
}

function drag_move(e){
if (!e) e = window.event;
if (drag_dragok){
 document.getElementById("janelinha").style.left = drag_dx + e.clientX - drag_x + "px";
 document.getElementById("janelinha").style.top  = drag_dy + e.clientY - drag_y + "px";
 return false;
}
}

function mdown(e)
{

if (!e) e = window.event;

 var temp = (typeof e.target != "undefined")?e.target:e.srcElement;
 if (temp.tagName != "HTML"|"BODY" && temp.id != "j_title"){
  temp = (typeof temp.parentNode != "undefined")?temp.parentNode:temp.parentElement;
 }

 if ((temp != undefined) && (temp.id == "j_title")) {

if (window.opera){
 document.getElementById("Q").focus();
}
drag_dragok = true;
//temp.style.zIndex = n++;
//d = temp;

drag_dx = parseInt(document.getElementById("janelinha").style.left+0);
drag_dy = parseInt(document.getElementById("janelinha").style.top+0);
drag_x = e.clientX;
drag_y = e.clientY;
//document.getElementById("janelinha").onmousemove = drag_move;
document.onmousemove = drag_move;
return false;

}

}  

function initialize()
{
     document.getElementById("janelinha").onmousedown = mdown;
     document.getElementById("janelinha").onmouseup = mup;
     document.onmousemove=getMouseCoordinates;
}

function getMouseCoordinates(e)
{
   if (!e) var e = window.event;    
   if (e.pageX || e.pageY) {
       m_x = e.pageX;
       m_y = e.pageY;
   } else {
       m_x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
       m_y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;        
   }
}

 

Segunda parte do alarme, chamado de "temporiza1.js"

function CDownloadUrl(method, url, params, func )
{

 var isget = (method.toString().toLowerCase()=="get");

  var httpObj;
  var browser = navigator.appName;
  if(browser.indexOf("Microsoft") > - 1)
  httpObj = new ActiveXObject("Microsoft.XMLHTTP");
  else
  httpObj = new XMLHttpRequest();

  if (isget) {
     httpObj.open(method, url + "?" + params, true);
  } else {
     httpObj.open(method, url, true);
     //Send the proper header information along with the request
     httpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     httpObj.setRequestHeader("Content-length", params.length);
     httpObj.setRequestHeader("Connection", "close");      
  }      

  httpObj.onreadystatechange = function()
  {
     if(httpObj.readyState == 4)
     {
        if (httpObj.status == 200)
        {
           var contenttype = httpObj.getResponseHeader('Content-Type');
           if (contenttype.indexOf('xml') > - 1)
           {
              func(httpObj.responseXML);
           }
           else
           {
              func(httpObj.responseText);
           }
        }
        else
        {
           //func('Error: ' + httpObj.status);
	    func("");
        }
     }
  }
  ;
  if (isget) httpObj.send(null); else httpObj.send(params);

}


function teste()
{
var x = 'tempo=' + new Date().getTime();

  CDownloadUrl("get", "../alarme.php" , x, function (txt)
  {
     var codponto=0;
     try
     {
	    if (txt != "") {
			document.getElementById('conteudo3').innerHTML=txt;
			disp_dialog('Alarme','conteudo3',true,fechar,300,300);
		} else {
			init();
		}

     }

     catch (err)
     {
	  //alert("danou-se");
	  init();
     } 




  });
}

function init()
{
setTimeout("teste()",3000);
}

 

Existe ainda na home um php que chama esse arquivo html (alarme.html)

 

<div id="overlay" style="display:none"></div>
<div id="janelinha" style="display:none">
 <table border="0" cellspacing="0" cellpadding="0" width="320px">
   <tr>
       <td>
           <table width="100%" border="0" cellspacing="0" cellpadding="2" >
               <tr>
                   <th id="j_title"> 
                   </th>
                   <th id="j_close" width="16px" onclick="clickclose_dialog()" align="center">X
                   </th>
               </tr>
           </table>
       </td>
   </tr>    
   <tr>
   <td>
           <!-- Aqui vai o conteudo 3 -->
           <div id="conteudo3" style="display:none">
           </div>
   </td>
 </tr>
 </table>


</div>

 

Obrigada pela ajuda, me avise se precisar de outros dados =)

Compartilhar este post


Link para o post
Compartilhar em outros sites
ao entrar em alguma página do sistema é ativado um pop up que mostra o nosso site
Ok.

 

 

após isso a cada 5 segundos o erro fica reaparecendo
que erro ?

 

q erro é esse ? poste uma imagem desse erro, e transcreva ele aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

149qec8.jpg

 

Esse pop up que abre nosso site é ativado automaticamente após 3 segundos (e aberto novamente em 3 segundos quando o pop up é fechado)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este. Nunca aconteceu isso, a intranet está em funcionamento há mais de um ano e semana passada começou a acontecer isso.

 

Aparentemente ninguém mexeu no sistema, este "alarme.js" sempre esteve presente nas pastas do sistema, porém, até semana passada ninguém aqui sabia que ele existia e qual sua função. No console também não aparece nenhum problema relacionado a ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele aparecer, é o erro ?

 

então procure no sistema alguma chamada a função init()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, desculpa se não ficou claro, mas sim, o erro é aparecer o pop-up pois nunca tinha acontecido isso.

 

No temporiza1.js aparece a função init, porém ela aparece somente para teste. Já conta? Eu posso excluir toda a função teste? Não costumo mexer com javascript...

 

function teste()
{
var x = 'tempo=' + new Date().getTime();

  CDownloadUrl("get", "../alarme.php" , x, function (txt)
  {
     var codponto=0;
     try
     {
                   if (txt != "") {
                               document.getElementById('conteudo3').innerHTML=txt;
                               disp_dialog('Alarme','conteudo3',true,fechar,300,300);
                       } else {
                               init();
                       }

     }

     catch (err)
     {
                 //alert("danou-se");
                 init();
     } 




  });
}

function init()
{
       setTimeout("teste()",3000);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

não.

 

procure onde está sendo chamado a função teste então.

 

no caso, a init() pode estar sendo chamada de algum outro ponto também, ai no caso, você vai ter q procurar no meio dos htmls também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahh entendi. Pode colocar como resolvido já, muito obrigada pela ajuda e paciência!

 

Você sabe porque aconteceu esse problema tanto tempo depois? É normal do javascript isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, não é "normal".

 

provavelmente alguém realmente mexeu.

 

A linguagem não faz nada que você não mande ela fazer. Nenhuma linguagem faz..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.