Объекты HTML не распознаются и не отображаются при извлечении из ajax - PullRequest
1 голос
/ 08 февраля 2012

Это происходит во всех протестированных браузерах (Chrome, Firefox, Opera ...)

Некоторые объекты HTML проглатываются и не отображаются при извлечении из ajax.Та же сущность HTML отображается, когда она жестко закодирована в исходном файле HTML.

Вот фактический результат: (сущность не отображается ни на веб-странице, ни в консоли)

the entity is not display nether in the web page nor in the console

Вот ожидаемый результат:

enter image description here

Вот javascript, который извлекает сущность:

<html><br/><head><br/><script type="text/javascript"><br/>  function injectEntity(){<br/>       var xhr = new XMLHttpRequest();<br/>        xhr.open("POST", "entity.php", true);<br/>      <br/>       xhr.onreadystatechange = function(){<br/>           if(xhr.readyState == 4){<br/>               var doc = xhr.responseXML;<br/>             console.log(xhr.responseText);<br/>             var div = document.getElementById("container");   <br/>               div.appendChild(doc.getElementById("the-entity"));<br/>           }   <br/>       }<br/>      xhr.send(null);<br/>    }<br/></script><br/></head><br/><body><br/>   <a href="#" onclick="injectEntity();">inject the following entity:</a> &#146;<br/>  <div id="container"><br/>   </div><br/></body><br/></html>

А вот файл php, который используется для извлечения сущности:

<?php<br/><br/>header('Content-type: application/xml; charset=UTF-8');<br/><br/>$xml = new DOMDocument('1.0', 'utf-8');<br/>$tag = $xml->createElement('b','&#146;');<br/>$tag->setAttribute("id","the-entity");<br/>$xml->appendChild($tag);<br/>echo $xml->saveXML();<br/><br/>?>

1 Ответ

0 голосов
/ 08 февраля 2012

Вы хотите &#8217;, а не &#146; (это непечатный управляющий символ)

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