5

我有 Cordova 应用程序,它使用 iframe 显示外部内容(在这种情况下是 youtube 嵌入视频)

单击 iframe 内的链接(如 youtube 徽标)时,整个 webview 将导航到 youtube 网站,而不仅仅是 iframe。(没有能力回去,你需要杀死应用程序),我想阻止的行为。

在 android 上,cordova 插件 api 公开了 onOverrideUrlLoading 方法,该方法应该能够阻止不需要的导航。(还没有自己测试过)

我在 ios cordova 类和 ios webview api 中都没有找到类似的方法。但我对ios并不熟悉。

我还尝试过(在 android 和 ios 上)iframe 的沙盒属性 https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe#attr-sandbox 这适用于防止脚本(不是我需要那个atm,只是为了检查属性是否在做某事)而不是阻止导航(要启用导航,您应该添加 allow-top-navigation 而我没有)

4

1 回答 1

12

使用 html5 沙盒属性,同时不允许允许顶部导航和允许弹出窗口

<iframe sandbox="allow-scripts allow-same-origin"...

测试:ios 8/7.1,安卓 4.4

在我之前的检查中,我已将允许弹出窗口添加到沙箱值

<iframe sandbox="allow-scripts allow-same-origin allow-popups"...
于 2014-11-14T17:21:33.933 回答