在div中加载HTML页面

5

我该如何在一个div内加载HTML页面?使用“object”标签可以加载,但我认为这不是一个好的方法。这不是外部文件。使用dojo是否可行?


2
without using iframes :) - coder247
6个回答

11

使用 jQuery

$("#mydiv").load("myexternalfile.html");

2
这个过滤器是否可以过滤掉不需要的元素,例如 HTMLHEADBODY?如果是这样的话,那么这将是一个相当优雅的解决方案。比手动插入要好得多。 - gablin
1
不,它会从“myexternalfile.html”中提取所有HTML代码,然后将其放入div中。 - Starx

3
我不完全确定你想要什么,但如果你希望在另一个HTML文档中显示一个HTML文档,那么我认为唯一的方法是使用iframe。请查看这个教程:http://www.designplace.org/tutorials.php?page=1&c_id=1 也许你可以加载HTML文档并剥离HEAD和包装BODY元素,然后将代码插入到DIV元素中。
编辑:啊,你说不要iframes。那么我建议采用后者。^^

1

这也可以用dojo实现...

<script type="text/javascript">
var url = dojo.moduleUrl("dijit.form", "help.html");
dojo.xhrGet({
  url: url,
  load: function(html){
       dojo.byId("mycontent").innerHTML = html;
  }
});
</script>

<div id="mycontent">

</div>

更新:

在Dojo 1.7+中,请使用require.toUrl而不是dojo.moduleUrl。


1

0
你仍然可以使用jQuery通过ajax调用来加载内容。取得结果后,删除<body>标签及其前面的所有内容和</body>标签及其后面的所有内容。您可以使用正则表达式确保包括标记的任何属性。

然后,您就获得了原始的body html,可以使用jQuery将其添加到div中。

jQuery.ajax({
    url: 'page.html', 
    success: function(data, textStatus, XMLHttpRequest) {
        data = data.replace(/.*<body.*?>/gi,'');
        data = data.replace(/</body>.*/gi,'');
        jQuery('#myDiv').html(data);
    }
});

我的正则表达式有点生疏,所以你可能需要稍微调整一下 :)


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接