【问题标题】:How to emulate Iframe only in IE8 mode.如何仅在 IE8 模式下模拟 iframe。
【发布时间】:2016-06-01 04:21:42
【问题描述】:

我遇到的问题和下面的2个一样:

Link 1

Link 2

我的问题是我的应用程序是一个 AngularJS 页面,它使用 IE8 不支持的 ui-router。

为了能够正确显示 SSRS 报告,我必须将此元数据添加到根页面:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

但这会导致页面显示出现很多问题,我需要找到不同的解决方案。

我正在尝试类似下面的方法,但没有运气:

<iframe class="ssrs-frame" type="text/html" ng-src="{{trustSrc(SSRS.url)}}" frameborder="0">
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
        <meta name="viewport" content="width=device-width,initial-scale=1">
    </head>
    <body>
    </body>
</html>

有什么方法可以强制 Iframe 仅使用 IE8 进行模拟?

【问题讨论】:

    标签: javascript html angularjs internet-explorer iframe


    【解决方案1】:

    如果您想为 IE8 提供特定的 CSS,您可以使用(内部头部):

    <!--[if IE 8]>
        <link rel="stylesheet" type="text/css" href="ie8.css">
    <![endif]-->
    

    这行得通。我不知道 HTML 是否也允许这样做,你应该测试一下:

     <!--[if IE 8]><iframe></iframe><![endif]-->
    

    否则,您可以创建 2 个 iframe,其中 1 个为 IE8 显示,1 个不显示。您可以在 ie8.css 文件中为特定 iframe 设置 display: block

    希望这会有所帮助。干杯

    【讨论】:

    • 或者在那个条件中加入一条消息,告诉用户使用不同的浏览器。微软自己甚至不再支持 IE8
    • 其实是IE9的问题。不幸的是,这是我公司在超过 2k 台电脑上运行的浏览器,因此该消息不是解决方案。
    • @Whistler 早期版本的 Angular 支持 IE9。你用的是什么版本?顺便说一句,微软也不再支持 IE9
    • Angular 是,但不是 ui-router。我们将在明年推出 IE 11,我等不及了
    • 如果是 IE9 问题,您可以简单地将 IE 8 替换为 IE 9css-tricks.com/how-to-create-an-ie-only-stylesheet
    猜你喜欢
    • 2014-10-31
    • 2012-03-06
    • 2011-04-15
    • 2015-05-20
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多