IE11 IFrame内容未加载

时间:2015-06-25 15:38:05

标签: asp.net-mvc-4 internet-explorer iframe iis-express

我再次遇到IE问题。我正在尝试使用iframe在模式对话框中显示我的应用程序的另一页。

与chrome和firefox完美配合使用。然而,IE显示iframe空白。如果我使用开发工具检查它,我会看到这一点。

<html>
  <head></head>
  <body></body>
</html>

例如,如果我将iframe src元素更改为bing.com,它就可以了。我试图设置位置:相对等,它不起作用。这是iframe标记:

<iframe height="710" id="trackingtableIframe" src="https://localhost:44300/#resources/1174/info?iframe=true" style="border: currentColor; border-image: none; width: 100%;"></iframe>

编辑:我采取的步骤解决了这个问题和结果:

  • 删除了Iframe的所有动态生成,(未显示)
  • 自HTTPS以来安装了站点证书(未显示)
  • 将Iframe相对网址更改为完整网址(未显示)
  • 将Iframe网址更改为任何其他网站,(显示)
  • 删除了我网页的所有内容,创建了一个test.html网页,其中只有iframe标记,指向右侧网页,显示正确的网址(正在显示)

1 个答案:

答案 0 :(得分:1)

我发现了这个问题,以及如何解决它。

问题是我的Web应用程序是使用.NET MVC / Durandal / Breeze的单页面应用程序。由于它是一个SPA,所有的路由都是javascript和页面URL设置在这样的#标签前缀#/ resources / info / 1

之后

此行为导致所有页面从浏览器角度看具有相同的URL。由于IFrame URL和当前页面URL相同,因此IE未加载它。向同一个索引控制器添加新的“虚拟”路由是我解决这个问题的方法。

        System.Web.Routing.RouteTable.Routes.MapRoute(
            name: "Iframe",
            url: "Iframe/{controller}/{action}/{id}",
            defaults: new
            {
                controller = "HotTowel",
                action = "Index",
                id = UrlParameter.Optional
            }
        );