在aspx-page的contentpane中加载完整的Html页面

时间:2011-02-07 23:55:39

标签: c# jquery asp.net

在家里我有不同的项目和库,我已经用Sandcastle创建了一个帮助文件。 现在,Sandcastle也提供了创建网站的可能性。

我想要做的是创建一个aspx页面,我可以动态创建一个菜单,并且可以解析现有的helpfile网站。所有在一个地方。

有可能做到这一点吗?也许我可以使用一些控制来查看整个网页?

谢谢。

修改

似乎无论出于何种原因我无法在ASP页面中使用它,但可能是因为Sandcastle创建帮助页面的方式。 我现在尝试使用带有webbrowser控件的WinForm应用程序,这种方法有效,所以我想这将是我必须去的地方。

但我需要感谢Alison(和Leon)对这个问题的帮助。 他们的解决方案适用于“普通”html页面,但(不幸的是)不适用于我所拥有的。 出于这个原因,我已经接受了答案,以便其他人可以从中受益。

2 个答案:

答案 0 :(得分:2)

<强>更新

看看jQuery load。您可以在页面上使用div并将外部页面中的html加载到其中。加载函数可以从不同的页面中获取单个HTML片段。

在您的主页上,添加此html:

<div id="myexternalpage"></div>

在其他页面上,添加一个div标签,其ID围绕您想要抓取的内容:

<div id="myexternalcontent">Test</div>

将以下内容添加到您的头标记中:

<script type="text/javascript">
$(document).ready(function() {
   $('#myexternalpage').load('myexternalpage.html #content');
})
</script>

注意在加载函数的末尾添加了“@content”选择器?这将使jQuery加载不同的页面并仅返回div中具有id =“content”的内容。

使用jQuery加载将允许您在页面加载后加载内容,而您不需要使用任何iFrame。您可以使用CSS来处理高度/宽度并处理任何溢出。

答案 1 :(得分:0)

我做了一个快速而肮脏的测试页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test2.aspx.cs" Inherits="Test2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js " ></script>
    <script type="text/javascript">
        $(document).ready(function () { $('#myexternalpage').load('WebHelp/KoenHoefman/ExhangeRateWebService/Index.html'); }) 
    </script>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="myexternalpage">
    </div>
    </form>
</body>
</html>

但我在脚本行上收到错误。

Microsoft JScript runtime error: Object expected

我是否必须用某些内容替换document(可能是一个愚蠢的问题,但我不习惯使用javascript)?

<强>更新 添加了Leon的代码,现在它显示了一些东西。但是,当我想使用我真正想要显示的页面(位于子文件夹中)时,我只获得index.html上的项目。应该加载到该页面的IFrame中的页面未显示。此外,未显示位于同一文件夹中的图片。

  

错误:HTTP 404
  请求的网址:   /html/aea04102-3d0d-cf0d-f5f4-5634f5f06aed.htm