Мой HTML-контент не отображается, когда я использую Javascript

Когда я использую скрипт для получения содержимого с определенного URL-адреса с помощью ajax, мой HTML-контент не отображается, т.е. элемент моей таблицы не отображается: я получаю данные с указанного URL-адреса и показываю их в окне предупреждения, и также используя document.write для записи на странице данных, поступающих с URL-адреса, который я назвал:

<head>
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.css" />
  <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.js"></script>
  <script type="text/javascript">
  $(document).ready(function() {
    $.ajax({
      type:"POST",
      url:"http://your url",
      success: onSuccess,
      error:onError
    });
  });
  function onSuccess(data){
    var servertext=data;
    document.write(servertext);
    alert(servertext);
  }
  function onError(data){
    alert(data+'error');
  }
  </script>
</head>
<body>
  <p> hello</p>
  <table height="150px" weight="150px" border="1px">
  <tr>
    <td><img src="green.png" height="100px" width="100px" /></td>
  </tr>
</table>

enter code here


person unkown    schedule 05.06.2012    source источник


Ответы (3)


document.write не следует использовать после завершения загрузки страницы. Если вы вызовете его, он будет неявно вызывать document.open, который очищает страницу и создает новый документ.

person Delan Azabani    schedule 05.06.2012
comment
моя проблема в том, что мой html elementi.e табличное представление в коде не отображается - person unkown; 05.06.2012
comment
ты хочешь сказать document.open(servertext); - person unkown; 05.06.2012
comment
@lenda Вы не должны использовать document.write после загрузки страницы. Вызов document.write означает удаление всей страницы и создание новой страницы только с вашим содержимым Ajax. Если вы хотите избежать уничтожения всего содержимого на своей странице, не используйте document.write после загрузки страницы. - person apsillers; 05.06.2012
comment
@APSILLERS YOU R RI8 СПАСИБО ЭТО РАБОТАЕТ - person unkown; 06.06.2012

Если ваш servertext - это html, попробуйте следующее:

<script type="text/javascript">
    $(document).ready(function() {
            $.ajax({
                type:"POST",
                url:"http://your url",
                success: onSuccess,        
                error:onError                   
            });          
    });
    function onSuccess(data){
        var servertext=data;

        $("div#ajaxContent").html(servertext);

        alert(servertext);
    }
    function onError(data){
    alert(data+'error');

    }       
</script>
</head>
<body>
<p> heloo</p>
     <table height="150px" weight="150px" border="1px">     
        <tr>
            <td> <img src="green.png" height="100px" width="100px" /></td>
        </tr>
    </table>
    <div id="ajaxContent"></div>
</body>
person TheVillageIdiot    schedule 05.06.2012
comment
моя проблема в моем html-элементе, т.е. таблица в коде не отображается - person unkown; 05.06.2012
comment
Вы пробовали $("div#ajaxContent").html(servertext)? Он будет отображать любой html, возвращаемый вашим вызовом ajax. - person TheVillageIdiot; 05.06.2012
comment
ты понял мой вопрос, я не понял мой вопрос, и это не работает - person unkown; 05.06.2012
comment
Кажется, у меня отлично работает: jsfiddle.net/ZVxwe (мне пришлось изменить вызов Ajax, чтобы использовать jsfiddle echo API, так как у меня нет доступа к вашей целевой странице Ajax, но в остальном весь код такой же.) Вы добавили <div id="ajaxContent"></div> внизу своего HTML? - person apsillers; 05.06.2012

Не используйте document.write, так как это не сработает и неправильно.

Вместо этого добавьте некоторый элемент-заполнитель в свой HTML, а затем назначьте ответ:

document.getElementById("myplaceholder").innerHTML = servertext;

Это поместит ответ в элемент, определенный как:

<div id="myplaceholder"></div>

Также обратите внимание, что вы можете отправлять запрос только на страницы в том же домене, что и страница с кодом AJAX. (Политика единого происхождения)

person Shadow Wizard Wearing Mask V2    schedule 05.06.2012
comment
моя проблема в моем html-элементе, т.е. таблица в коде не отображается - person unkown; 05.06.2012
comment
‹table height=150px weight=150px border=1px› ‹tr› ‹td› ‹img src=green.png height=100px width=100px /›‹/td› ‹/tr› ‹/table› это не отображается в моя страница, идентификатор содержимого тела, который я удаляю, будет отображаться в этой таблице. - person unkown; 05.06.2012