Ios 如何在被“webView.uiDelegate”打开后处理“window.close”?
我正在为iOS开发一个WKWebView应用程序,它可以增加现有网站的功能,但我无法更改此网站的源代码 当用户单击某些按钮时,会触发Ios 如何在被“webView.uiDelegate”打开后处理“window.close”?,ios,swift,xcode,popup,wkwebview,Ios,Swift,Xcode,Popup,Wkwebview,我正在为iOS开发一个WKWebView应用程序,它可以增加现有网站的功能,但我无法更改此网站的源代码 当用户单击某些按钮时,会触发窗口。打开。 我已成功地相应地覆盖委托函数: func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFea
窗口。打开。
我已成功地相应地覆盖委托函数:
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
let contentController = WKUserContentController()
let popups = getJSfromURL(url: Bundle.main.path(forResource: "popups", ofType: "js")!)
contentController.addUserScript(popups)
let webConfiguration = WKWebViewConfiguration()
webConfiguration.userContentController = contentController
let popupView = WKWebView(frame: .zero, configuration: webConfiguration)
popupView.load(navigationAction.request)
view = popupView
return nil
}
在这个弹出窗口中,有一个按钮调用一个this.close()
,但是浏览器抱怨说,这个按钮无法关闭,因为它不是由javascript打开的
另一个按钮想要设置一些用户已经设置的参数,但是浏览器抱怨,opener
-参数是nil
在打开弹出窗口之前,我可以使用注入的javascript以某种方式设置开启器吗?我已经通过将呈现网站的源设置为弹出窗口的src来解决这个问题
现在,弹出窗口显示在相同的上下文中,可以毫无问题地发回给定的信息
例如:
触发弹出窗口的按钮New
。/training/NewTraining.aspx
调用javascript函数showNew()
现在,我只是将此函数添加到注入的javascript中,以便执行:
function showNeu() {
parent.parent.frames[1].location.href='../training/TrainingNeu.aspx';
}
我还修改了关闭弹出窗口的按钮Abort
的javascript:
var btnAbort = document.getElementById('ASPxRoundPanel3_btnAbort');
if (btnAbort) {
btnAbort.onclick = function () {parent.window.location = "/MainPage.aspx";};
}