从ajax检索时,HTML实体无法识别并且不显示

时间:2012-02-08 14:56:13

标签: javascript html ajax encoding browser

这种情况发生在所有经过测试的浏览器中(Chrome,Firefox,Opera ...)

从ajax检索时,某些HTML实体被吞下并且不显示。在HTML源文件中对其进行硬编码时,将显示相同的HTML实体。


以下是实际输出: (实体不在网页或控制台中显示为nether)

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


以下是预期的输出:

enter image description here


以下是检索实体的JavaScript:

<html>
<head>
<script type="text/javascript">
function injectEntity(){
var xhr = new XMLHttpRequest();
xhr.open("POST", "entity.php", true);

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


这是用于检索实体的php文件:

<?php

header('Content-type: application/xml; charset=UTF-8');

$xml = new DOMDocument('1.0', 'utf-8');
$tag = $xml->createElement('b','&#146;');
$tag->setAttribute("id","the-entity");
$xml->appendChild($tag);
echo $xml->saveXML();

?>

1 个答案:

答案 0 :(得分:0)

你想要&#8217;,而不是&#146;(这是一个不可打印的控制角色)