2

我有一个代表一些 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 标签有效。

我使用另一个库而不是像https://github.com/jindw/xmldom这样的 jQuery 来执行此操作,但结果是一样的。更新:这是 jsfiddle 链接:http: //jsfiddle.net/V4GHz/

4

1 回答 1

1

最后我找到了我自己问题的答案。问题是不要在 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>
于 2013-10-01T16:25:07.393 回答