在我们的网站和iframe上禁用Flash

时间:2013-11-04 23:07:47

标签: javascript html flash iframe

如何在我网站上的iframe中禁用Flash?

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

2 个答案:

答案 0 :(得分:2)

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

<!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>

答案 1 :(得分:1)

更新 - 请参阅Rick的回答

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


您无法从您的网站控制其他域中的iframe

由于same origin policy,您无法在其上运行任何脚本来删除/更改Flash。

这是一个安全问题 - 想象一下你可以包含和操纵iframe。我可以添加一个包含http://nouveaus-bank.com的iframe,并模拟输入金额的事件并将资金转入我的帐户。

有iframe沙盒的“allow-plugins”提案,但它是rejected

您唯一的选择是在您的网站上使用代理并将其放在您的域上,或者在服务器端操作它。如果您可以要求客户在其旁边添加代码段,您可以执行.postMessage并在iframe上拦截它,要求它删除闪存。