1

我在 ASPX 页面中有一个 iframe,如下所示:

<iframe id="mapFrame" name="mapFrame" src="project/visioMap.htm" frameborder="0" width="100%" height="900px" runat="server" />

项目目录包含 Visio 导出的网页内容。我想将此内容嵌入 .NET 网站,而不更改 Visio 导出的任何内容(即 *.htm、*.js、*.xaml)。这就是我尝试使用 iframe 标记嵌入的原因。

但是,当页面加载时,它会因错误而崩溃:

TypeError: parent.parent.FindShapeXML is not a function
var shapeNode = parent.parent.FindShapeXML (pageID, shapeID); // in a *.js file

此错误出现在 Visio 导出的 *.js 文件中,但就像我说的,我不想编辑 Visio 导出的任何文件。如果我只是打开 visioMap.htm,一切正常,所以指向它的 iframe 默认情况下应该可以正常工作。

显然,当我直接在浏览器中打开 visioMap.htm(有 2 帧)和通过 iframe 在浏览器中间接打开 visioMap.htm 时,parent.parent 具有不同的含义。

4

1 回答 1

1

在 Visio 的“另存为 Web”设置对话框中有一个选项“在网页中托管”。

在此处输入图像描述

默认情况下,其值为“无”。您可以在此处选择要嵌入已发布内容的网页。然后它将被放置<iframe>在这个页面上。<iframe>或者,选择“基本”以生成包含已发布内容的基本网页。该页面HTML如下:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title></title>
    </head>
    <iframe src="[Your visio file name]_main_2.htm" width="100%" height="100%" frameborder="1" scrolling="auto">
        <!-- No iframesupport --> 
    </iframe>
</html>

您可以直接使用此页面或指向<iframe>此页面上引用的“[您的 visio 文件名]_main_2.htm”。

于 2016-11-20T12:39:26.577 回答