4

如何禁止 Flash 在我网站的 iframe 中运行?

我们有一个网站,让用户可以选择在临时移动模拟器上的 iframe 中查看他们的网站。我们希望用户看到他们的网站看起来不太好,但由于许多原因,这并没有按预期工作。我没有考虑元视图端口设置等,但我稍后会弄清楚。另一个问题是 Flash 可以工作,但不希望它工作,因此他们看到它无法在 iOS 上运行。

4

2 回答 2

2

使用新的 HTML5 iframe 沙盒属性,您可以通过包含沙盒属性来禁用支持的浏览器中的所有插件(包括 Flash)。例如:

<!DOCTYPE html>
<html>
    <head>
        <style>iframe{height:9000px; width:100%;}</style>
    </head>
    <body>
        <iframe sandbox="allow-scripts" src="http://www.adobe.com/software/flash/about/"/>
    </body>
</html>

不会显示flash动画,或版本信息。但是没有沙箱的相同代码将:

<!DOCTYPE html>
<html>
    <head>
        <style>iframe{height:9000px; width:100%;}</style>
    </head>
    <body>
        <iframe src="http://www.adobe.com/software/flash/about/"/>
    </body>
</html>
于 2015-01-07T14:10:04.913 回答
1

更新 - 请参阅 Rick 的回答

当前的 HTML5 方式是使用sandbox="allow-scripts"- 这在 Rick 的回答中进行了解释。


您无法iframe从您的站点控制另一个域上的 s。

由于相同的来源策略,您不能在它们上运行任何脚本来删除/更改闪存。

这是一个安全问题 - 假设您可以包含和操作 iframe。我可以包含一个包含http://nouveaus-bank.com的 iframe,并模拟输入金额并将资金转入我的帐户的事件。

有一个 iframe 沙盒的“允许插件”提案,但被拒绝了

您唯一的选择是在您的站点上使用代理并将其放在您的域中,或者在服务器端进行操作。如果您可以要求客户在他们身边包含一个代码片段,您可以执行 a.postMessage并在 iframe 上拦截它,要求它删除闪存。

于 2013-11-04T23:21:13.450 回答