Проблема с Javascript - PullRequest
       5

Проблема с Javascript

0 голосов
/ 19 апреля 2010

Я пытаюсь выполнить скрипт в теге div с помощью AJAX. Но в теге div скрипт не запускается.
Вот мой код:

<div id="div0" align="right">
  <script type="text/javascript">
  <!--
    alert("Hi");
  -->
  </script>
</div>  

Это не работает для меня. Пожалуйста, кто-нибудь, скажите мне, в чем проблема?

Редактировать:

Мой полный код таков:

<html>  
   <head>  
   <script type="text/javascript">
      var xmlhttp;
      function loadXMLDoc(url)
      {
        xmlhttp=null;
        if (window.XMLHttpRequest)
        {// code for Firefox, Opera, IE7, etc.
          xmlhttp=new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        if (xmlhttp!=null)
        {
          xmlhttp.onreadystatechange=state_Change;
          xmlhttp.open("GET",url,true);
          xmlhttp.send(null);
        }
        else
        {
          alert("Your browser does not support XMLHTTP.");
        }
      }

     function state_Change()
     {
      if (xmlhttp.readyState==4)
      {// 4 = "loaded"
        if (xmlhttp.status==200)
        {// 200 = "OK"
         document.getElementById('T1').innerHTML=xmlhttp.responseText;
        }
        else
        {
          alert("Problem retrieving data:" + xmlhttp.statusText);
        }
     }
   }
   </script>
   </head>

   <body onload="loadXMLDoc('test_xmlhttp.php')">
     <div id="T1"></div><br />
   </body>

  </html>  

Мой test_xmlhttp.php выглядит следующим образом:

  <script type="text/javascript">
  <!--
    alert("Hi");
  -->
  </script>

Я хочу, чтобы в окне предупреждения отображалось Привет , когда AJAX завершен. Но ничего не происходит. Пожалуйста, пожалуйста, пожалуйста, дайте мне решение.

Ответы [ 5 ]

4 голосов
/ 19 апреля 2010

Вы должны использовать элементы HTML (например,>) вместо символов больше (>) или меньше (<). Попробуйте следующий код. </p>

<div id="div0" align="right">  <br />
  &lt;script type="text/javascript"&gt; <br />
  &lt;!--  <br />
    alert("Hi");  <br />
  --&gt;  <br />
  &lt;/script&gt;  <br />
</div>   <br />
3 голосов
/ 19 апреля 2010

Проблема может быть в комментариях HTML, которые должны быть закомментированы, как указывает С.Марк.

Однако , нет никаких причин включать эти комментарии вообще. Первоначально они предлагались для предотвращения взлома кода браузерами без поддержки JavaScript / JScript (пытаясь прочитать его как разметку). Я думаю, что последние браузеры с этой проблемой вышли примерно в '95 и больше не используются:)

Существует законная причина использовать блоки CDATA, если вы обслуживаете документ XHTML 1.0 Strict, но я сомневаюсь, что вы пойдете на это.

1 голос
/ 19 апреля 2010

Возможно, вы используете его локально, и ваш браузер не позволяет запустить javascript?

Я только что запустил код на своем сайте, и он прекрасно загружается.

0 голосов
/ 15 мая 2011

попробуйте использовать eval () в вашей функции state_Change, как показано ниже:

document.getElementById('T1').innerHTML=eval('('+xmlhttp.responseText+')');
0 голосов
/ 19 апреля 2010

Нет смысла терпеть неудачу в этом. Я попробовал это на IE8 и Firefox. IE8 блокирует это. Но как только блок снят, он работает нормально. Вы заметили какую-либо блокировку IE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...