在IE9中使用jQuery进行XML解析时缺少innerHTML,但Chrome中没有
innerHTML missing when XML parsing with jQuery in IE9 but not Chrome
我正在一些包含HTML的简单内容上使用jQuery的XML解析器。
使用 jQuery 的.html()
或标准 JavaScript .innerHTML
提取完整的 HTML 文本在 Chrome 中运行良好,但在 Internet Explorer 9 中则不行。 jQuery 的.text()
在这两种情况下都有效,但我也需要提取 html 标记。
如何使其也适用于IE9?
您可以在此处进行测试:http://jsfiddle.net/199vLsgz/
.XML:
<script id="xml_data" type="text/xml">
<model_data name="The model ">
<person_responsible></person_responsible>
<objects>
<object name="Available B reports" id="obj1" >
<description>this is a description <br/> oh look, another line!</description>
</object>
</objects>
</model_data>
</script>
法典:
$(function() {
var xml = $("#xml_data").text();
var xmlDoc = $.parseXML(xml);
$xml = $(xmlDoc);
var desc = $xml.find("model_data > objects > object[id='obj1'] > description");
alert(desc.html());
})
XML元素在IE中没有定义innerHTML,这是jquery的html函数一起使用的。
首先,您需要使用 CDATA 在 xml 标签中保留标签
<description><![CDATA[this is a description <br/> oh look, another line!]]></description>
然后,您可以尝试使用 textContent 属性:
alert(desc[0].textContent); //desc.text() will also work now
您还可以使用以下方法正确添加内容:
$('#some-container').html(desc[0].textContent);
$(function() {
var xml = $("#xml_data").text();
var xmlDoc = $.parseXML(xml);
$xml = $(xmlDoc);
console.log($xml)
var desc = $xml.find("model_data > objects > object[id='obj1'] > description");
alert(desc[0].textContent);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script id="xml_data" type="text/xml">
<model_data name="The model">
<person_responsible></person_responsible>
<objects>
<object name="Available B reports" id="obj1" >
<description><![CDATA[this is a description <br/> oh look, another line!]]></description>
</object>
</objects>
</model_data>
</script>
相关文章:
- Chrome WebKitGetUserMedia
- Chrome扩展,用于修改Twitter的innerHTML
- innerHTML=Date()在fiddle中工作,但在Chrome或IE中不工作
- 在IE9中使用jQuery进行XML解析时缺少innerHTML,但Chrome中没有
- Innerhtml 在 Mozilla 和 Chrome 中不保留 Selectbox 和 Radio 的选定选项,但在
- 无法在 Chrome 扩展程序中将属性“innerHTML”设置为空
- 未捕获的类型错误:无法读取 Firefox 和 Chrome 中的属性“innerHTML”
- innerHTML适用于Firefox,但不适用于Chrome
- innerHTML工作在IE和Firefox,但不是Chrome
- 修改innerHTML使Youtube视频无法播放-Chrome扩展
- 获得innerHTML的iframe加载在chrome背景页面
- 火狐浏览器,Chrome不要在innerHTML中显示图像
- innerHTML写上.value适用于IE9 IE8,但不适用于IE10, Firefox, Chrome
- 谷歌Chrome浏览器不更新iframe元素innerHTML动态变化后,在JavaScript
- Break on "innerHTML" changes in Chrome
- chrome崩溃,而设置弹出窗口.innerHTML = largeString
- iFrame文本没有显示在Firefox上,但在Chrome上工作(document.body.innerHTML)
- 试图在Chrome扩展选项页面显示警报,但得到"不能设置属性'innerHTML'undefi
- innerHTML 会导致 Chrome 中出现不必要的滚动
- 拦截(HTMLElement].innerHTML在Chrome修改