包括将HTML文档呈现到另一个HTML文档中

Kaa*_*rel 4 html javascript css jquery

我有一个字符串代表一个独立的(和有效的XHTML 1.0 Strict)HTML文档,类似于

var html = "<?xml ... <!DOCTYPE ... <html><head><style>...</style></head>
                  <body><table>...</table></body></html>";
Run Code Online (Sandbox Code Playgroud)

此HTML文档的正文包含一个表,其CSS样式在HTML文档的头部描述.

我还有另一个HTML文档的DOM树.如何在这个DOM树中包含具有正确样式的表的DOM树(如HTML字符串中所述)?

我对基于jQuery的解决方案特别感兴趣.

编辑:更具体地说,我正在谈论的HTML字符串的一个例子嵌入到这个XML文档中.

Dan*_*man 14

我可能会忽略这一点,但为什么不将字符串加载到IFRAME中进行渲染 - 这解决了我有两个独立的DOM树和两个独立的CSS规则集的所有问题.

这段代码会这样做:

$(function() {
        var $frame = $('<iframe style="width:200px; height:100px; border: 0px;">');
        $('body').html( $frame );
        setTimeout( function() {
                var doc = $frame[0].contentWindow.document;
                var $body = $('body',doc);
                $body.html(your_html);
        }, 1 );
});
Run Code Online (Sandbox Code Playgroud)

(我从这里解除了:将html放在iframe中(使用javascript))

然后,如果您担心IFRAME的大小,可以使用以下命令设置:

$frame[0].style.height = $frame[0].contentWindow.document.body.offsetHeight + 'px';
$frame[0].style.width = $frame[0].contentWindow.document.body.offsetWidth + 'px';
Run Code Online (Sandbox Code Playgroud)

  • 那么代码示例是从我链接的其他答案中借来的 - 但是我会尽力回答你的问题:(1)我认为这必须是某种Javascript评估顺序的事情.也许是为了跨浏览器兼容性 在实例化之后,IFRAME的DOM元素似乎不会立即可用.(2)请参阅http://stackoverflow.com/questions/205853/ - 如果您愿意,可以删除它们(3)jQuery总是返回一个数组,即使对于单个元素也是如此. (2认同)