Jump to content
Fórum Script Brasil
  • 0

Código-fonte do JavaScript é exibido na página.


GuiOr

Question

Tenho uma aplicação Web feita em HTML, CSS, PHP e JavaScript, que roda com Ajax.

A página principal, após login, exibe uma espécie de mapa com vários quadradinhos em algumas cores, cada um com uma representação específica. Ao clicar sobre cada um deles, uma espécie de pop-up é exibida e contém opções que irão abrir novas janelas e, consequentemente, novas páginas.

Esta página principal, a index.php, contém um trecho de código PHP, e logo abaixo, o corpo em HTML da página. Dentro do HTML, na tag <head>, há as definições para o JavaScript e para o CSS.

O grande problema é o seguinte: quando abro essa página no Firefox, o código-fonte do JavaScript e do CSS aparece na tela, do mesmo modo que estão escritos no arquivo index.php. Nisso, a aplicação trava e nenhuma pop-up se abre. No Chrome, os códigos também aparecem da mesma maneira, só que ao clicar em um quadrado, a pop-up aparece normalmente. No IE, a aplicação funciona corretamente, como deve ser, sem exibir código puro algum na tela.

Gostaria de saber se é algum problema do Ajax ou outra coisa, pois está difícil encontrar algum caso semelhante na internet.

Obrigado!

Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Tenko

Eu coloquei o JavaScript dentro das tags sim, assim como o código CSS está dentro das tags <style> </style>.

fiote

Não é possível que eu poste a página aqui.

Em relação ao uso de <!-- -->, o código estava inicialmente sem estes caracteres. Coloquei e o problema persistiu, como se eu não tivesse feito alteração alguma.

Cheguei a pensar que o JavaScript e o CSS talvez não estivessem sendo interpretados. Então, comentei o código JavaScript original e coloquei um alert() no lugar.

Ao atualizar a página, o alert() é exibido normalmente. Após clicar no OK, a página abre, mas a linha de código do alert() também é exibida.

Agradeço a ajuda!

Link to post
Share on other sites
  • 0

Fiz um exemplo MUITO simples, mas acho que dá para visualizar o que está acontecendo.

index.php

<?php
echo "TESTE";
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br">
<head>
   <meta name="language" content="pt-br" />
   <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
   <title>Exemplo - Exemplo</title>
   <meta name="keywords" content="" />
   <meta name="description" content="" />
   &lt;script type="text/javascript" src="consulta.js"></script>

   &lt;script type="text/javascript">
      alert("TESTE");  
   </script>

   <style type="text/css">
      * { 
         text-decoration:none;
         display:block;
         font-weight:normal;
         font-family:arial,freesans,helvetica,sans-serif;
         color: #000;
      }   

      a { 
        color: red;
        text-decoration:underline;
      }   
   </style>
</head>
<body onload="callServer();" bgcolor="#FFFFFF" style="margin: 0px;">
   <p><a href="http://www.google.com" title="Google">Google</a></p>
</body>
</html>
consulta.js
var xmlHttp;

function getHTML() {
   var url = 'pagina.php';
   var pars = 'someParameter=ABC';
   var myAjax = new Ajax.Updater(
            'users', 
            url, 
            { method: 'get', parameters: pars }); 
}

function callServer(){
   xmlHttp = GetXmlHttpObject();
   if (xmlHttp == null) {
      alert ("Este browser não suporta HTTP Request");
      return;
   }   

   var url = "pagina.php?id=47" + "&ms=" + new Date().getTime();
   xmlHttp.onreadystatechange = updatePage;
   xmlHttp.open("GET", "pagina.php", true);
   xmlHttp.send(null);
}

function updatePage() {
   if(xmlHttp.readyState == 4) {
      var response = xmlHttp.responseText;
      document.getElementById("users").innerHTML = response;
      setTimeout('callServer()', 5000);
   }   
}

function consulta(str) { 
   xmlHttp = GetXmlHttpObject();
   if (xmlHttp == null) {
      alert ("Este browser não suporta HTTP Request");
      return;
   }   
   var url = "consulta.php";
   url = url + "?q=" + str;
   url = url + "&sid=" + Math.random();
   xmlHttp.onreadystatechange = stateChanged;
   xmlHttp.open("GET", url, true);
   xmlHttp.send(null);
}

function stateChanged() {
   if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
      document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
   }
}

function GetXmlHttpObject() {
   var xmlHttp = null;
   try {
      // Firefox, Opera 8.0+, Safari
      xmlHttp = new XMLHttpRequest();
   } catch (e) {
      //Internet Explorer
      try {
         xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
   }
   return xmlHttp;
}

Link to post
Share on other sites
  • 0

Tirei o asterisco e funcionou ¬¬

Quando eu pesquisei sobre esse asterisco, achei como normal o uso dele.

Agora o problema é que a aplicação continua travada no Firefox, pois ao clicar em um quadrado, a pop-up não aparece. Nos outros browsers funciona normalmente.

É necessário acrescentar algo mais além de <script type="text/javascript"> funções_javascript </script>?

Agradeço muito pela ajuda e peço desculpas por parece desnecessário, pois sou iniciante em Ajax/JavaScript.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149279
    • Total Posts
      645643
×
×
  • Create New...