我在 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 具有不同的含义。
最佳答案
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”。
关于javascript - silverlight 内容在 iframe 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19121851/