2

我创建了一个虚拟桌面页面,该页面将以信息亭模式在浏览器(IE11 或 chrome)中运行,我想将结果放在大触摸屏显示器上,以允许用户通过信息亭浏览 Intranet 站点。

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

我正在尝试制定一项政策,允许 iframe 中显示的网站遵循 href 到其他页面,但禁用 mailto 和文件链接(以避免浏览器打开电子邮件客户端或文件资源管理器)。当然,我无法更改 iframe 中显示的原始站点的代码,并且我知道由于同源策略,我无法在容器页面中使用 JS 覆盖 href。

有没有办法获得这个?

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

有任何想法吗 ?

4

1 回答 1

1

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

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

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

当前 URL 在 Internet 区域或受限站点区域中打开。当前 URL 使用“file:”以外的协议。

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

HKEY_LOCAL_MACHINE
   软件
      客户
         邮件
            规范名称
               协议
                  邮寄

RegisterProtocolHandlerAPI 适用于 Chrome:

Chrome 13 终于包含了 navigator.registerProtocolHandler。此 API 允许 Web 应用程序将自己注册为特定协议的可能处理程序。例如,用户可以选择您的应用程序来处理“mailto”链接。

注册一个协议方案,如:

 navigator.registerProtocolHandler(
'mailto', 'about:blank', 'Mail Protocol');

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

参考

于 2016-08-13T08:00:24.577 回答