Iframe沙盒:禁用mailto和file://file链接

Iframe沙盒:禁用mailto和file://file链接,iframe,sandbox,mailto,file-uri,external-application,Iframe,Sandbox,Mailto,File Uri,External Application,我已经创建了一个虚拟桌面页面,该页面将在kiosk模式下的浏览器(IE11或chrome)中运行,我希望将结果显示在一个大的触摸屏上,以便允许用户通过kiosk浏览intranet站点 在页面中,我还有一个iframe,它显示了我的域mycompany.com中的其他站点 我正在尝试建立一个策略,允许iframe中显示的站点跟随href进入其他页面,但禁用mailto和文件链接(以避免浏览器打开电子邮件客户端或文件浏览器时出现错误)。 当然,我无法更改iframe中显示的原始站点的代码,并且我知

我已经创建了一个虚拟桌面页面,该页面将在kiosk模式下的浏览器(IE11或chrome)中运行,我希望将结果显示在一个大的触摸屏上,以便允许用户通过kiosk浏览intranet站点

在页面中,我还有一个iframe,它显示了我的域mycompany.com中的其他站点

我正在尝试建立一个策略,允许iframe中显示的站点跟随href进入其他页面,但禁用mailto和文件链接(以避免浏览器打开电子邮件客户端或文件浏览器时出现错误)。 当然,我无法更改iframe中显示的原始站点的代码,并且我知道我无法在容器页面中使用JS覆盖href,因为相同的源策略

有没有办法得到这个

我在HTML5中找到了iframe标记的属性沙盒,但我不确定是否要使用它来完成任务


有什么想法吗?

使用桌面应用程序、注册表编辑或区域策略来控制:

应用程序可以注册为某个统一资源标识符(URI)方案名称的默认处理程序。桌面应用程序和Windows运行时应用程序都可以注册为URI方案名称的默认处理程序。如果用户选择您的应用程序作为URI方案名称的默认处理程序,则每次启动该类型的URI时,都会激活您的应用程序

默认情况下,当当前URL符合以下条件时,Internet Explorer阻止使用“文件:”协议导航到统一资源标识符(URI):

当前URL在Internet区域或受限站点区域中打开。 当前URL使用的协议不是“文件:”

对于邮件客户端,程序需要在HKEY_CLASSES_ROOT\mailto密钥下注册设置,以便为使用mailto协议的URL提供服务。在以下键下设置镜像这些设置的值和键

第一个参数是协议。第二个是应该处理此方案的应用程序的URL模式。模式应包含“%s”作为数据占位符,并且它必须与尝试注册协议的应用位于同一来源。一旦用户批准访问,您就可以通过应用程序、其他网站等使用此链接

参考资料

HKEY_LOCAL_MACHINE Software Clients Mail CanonicalName Protocols mailto
 navigator.registerProtocolHandler(
'mailto', 'about:blank', 'Mail Protocol');