我已经创建了一个虚拟桌面页面,它将在kiosk模式下在浏览器(IE11或chrome)中运行,我想将结果放在大触摸屏显示器上,以便用户可以浏览内部网现场通过售货亭。
在该页面中,我还有一个iframe,显示我的域mycompany.com中的其他网站。
我正在尝试构建一个策略,允许iframe中显示的网站跟随href到其他网页但禁用mailto和文件链接(为了避免浏览器打开电子邮件客户端或文件管理器)。 当然,我无法更改iframe中显示的原始网站的代码,我知道由于相同的来源策略,我无法在容器页面中使用JS覆盖href。
有没有办法获得这个?
我在HTML5中找到了iframe标签的属性沙箱,但我不确定是否要使用它来完成任务。
有什么想法吗?
答案 0 :(得分:1)
使用桌面应用,注册表编辑或区域策略来控制:
应用程序可以注册成为某个统一资源标识符(URI)方案名称的默认处理程序。桌面应用程序和Windows运行时应用程序都可以注册为URI方案名称的默认处理程序。如果用户选择您的应用程序作为URI方案名称的默认处理程序,则每次启动该类型的URI时都会激活您的应用程序。
默认情况下,当当前URL符合以下条件时,Internet Explorer会阻止使用“file:”协议导航到统一资源标识符(URI):
当前URL在Internet区域或“受限制的站点”区域中打开。 当前URL使用“file:”以外的协议。
对于邮件客户端,程序需要在HKEY_CLASSES_ROOT \ mailto密钥下注册设置,以便为使用mailto协议的URL提供服务。在以下键下设置镜像这些设置的值和键。
HKEY_LOCAL_MACHINE Software Clients Mail CanonicalName Protocols mailto
RegisterProtocolHandler
API适用于Chrome:
Chrome 13最终包含navigator.registerProtocolHandler。此API允许Web应用程序将自己注册为特定协议的可能处理程序。例如,用户可以选择您的应用程序来处理“mailto”链接。
注册协议方案,如:
navigator.registerProtocolHandler(
'mailto', 'about:blank', 'Mail Protocol');
第一个参数是协议。第二个是应该处理此方案的应用程序的URL模式。该模式应包含'%s'作为数据的占位符,并且必须与尝试注册协议的应用程序位于同一源。用户批准访问后,您可以通过您的应用,其他网站等使用此链接
<强>参考强>