我有一个代表一些 HTML 标签的 XML 字符串。我想选择一些 XML 并将其导入到 HTML。
我目前正在做的一个例子:
<html>
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<div><p>som text</p></div>
<h1>hi there</h1>
<button>click</button>
<script>
xml = '<?xml version="1.0" encoding="utf-8"?><root><html><a href="#">the new link</a></html></root>';
$xml =$($.parseXML( xml ));
$('button').on('click',function(){
var content = $xml.find('html:first').contents();
content.appendTo('body');
});
</script>
</body>
</html>
代码应该在页面末尾附加一个链接,但我只能看到文本,而不是链接。没有 HTML 标记起作用。
我使用另一个库来代替 jQuery 来做这件事,比如 https://github.com/jindw/xmldom ,但结果是一样的。 更新:这是 jsfiddle 链接:http://jsfiddle.net/V4gHz/
最佳答案
我终于找到了我自己问题的答案。问题是不要在 innerHTML 或 XMLSerializer 上浪费你的时间。因为它们不适用于所有浏览器,它们只与 Firefox 兼容。和 jquery 解决方案,如 $.contents() 或 $.HTML() 也仅适用于 firefox,不适用于 opera、chrome 和 IE。
我发现一个名为“htmlize”的 jquery 插件是真正的序列化器。插件地址是:https://github.com/ZeeAgency/jquery.htmlize
您可以从 github 上找到更多信息。我的问题就是这样解决的:
<html>
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<div><p>som text</p></div>
<h1>hi there</h1>
<button>click</button>
<script>
xml = '<?xml version="1.0" encoding="utf-8"?><root><html><a href="#">the new link</a></html></root>';
$xml =$($.parseXML( xml ));
$('button').on('click',function(){
var content = $xml.find('html:first').htmlize();
$(content).appendTo('body');
});
</script>
</body>
</html>
关于javascript - 将 XML 导入 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070979/