2010-04-19 4 views
0

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

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

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

Edit:

Мой полный код является то, что:

<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 выполнен. Но ничего не происходит. Пожалуйста, дайте мне решение.

+2

Пытаясь показать, что в теге? Кроме того, этот код работает отлично. – Nitrodist

+0

Я забыл сказать, что я пытаюсь использовать это в AJAX. Это не работает в AJAX. – Tareq

+0

работает для меня ... – gath

ответ

0

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

document.getElementById('T1').innerHTML=eval('('+xmlhttp.responseText+')'); 
+0

Спасибо, что помогли мне. – Tareq

0

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

3

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

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

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

+0

Я удалил свой ответ из-за downvotes. – YOU

4

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

<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 /> 
+0

Как вы сказали, вы хотели показать код! не выполняется. –

+0

Неправильно. Я пытаюсь выполнить код, но не показывать. – Tareq

1

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

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