代码之家  ›  专栏  ›  技术社区  ›  Sheldon Cooper

银光含量在iframe中不起作用

  •  1
  • Sheldon Cooper  · 技术社区  · 11 年前

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

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

    项目目录包含Visio导出的网页内容。我希望在不更改Visio导出的任何内容(即*.htm、*.js、*.xaml)的情况下将此内容嵌入.NET网站。这就是我尝试使用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帧的)时,parent.parent有不同的含义,而当我通过iframe在浏览器中间接打开visioMap.htm时,parent_parent有一个不同的含义。

    1 回复  |  直到 11 年前
        1
  •  1
  •   Boris Zinchenko    8 年前

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

    enter image description here

    默认情况下,其值为“无”。您可以在此处选择一个网页,以便在其中嵌入已发布的内容。然后将其放入 <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> 到本页引用的“[Your visio file name]_main_2.htm”。