阻止iframe中的链接导航/接管cordova webview,尤其是在ios中

Bna*_*aya 5 html5 ios cordova ios-web-app

我有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而我没有)

Bna*_*aya 12

使用html5沙箱属性,但不允许使用allow-top-navigation和allow-popups

<iframe sandbox="allow-scripts allow-same-origin"...
Run Code Online (Sandbox Code Playgroud)

测试:ios 8/7.1,android 4.4

在我之前的检查中,我已将allow-popups添加到沙箱值中

<iframe sandbox="allow-scripts allow-same-origin allow-popups"...
Run Code Online (Sandbox Code Playgroud)

  • 这很棒,但我希望链接仍然打开,就在iframe中.那可能吗? (3认同)