Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么window.close不适用于多个窗口_Javascript_Swift_Wkwebview_Wkwebviewconfiguration - Fatal编程技术网

Javascript 为什么window.close不适用于多个窗口

Javascript 为什么window.close不适用于多个窗口,javascript,swift,wkwebview,wkwebviewconfiguration,Javascript,Swift,Wkwebview,Wkwebviewconfiguration,我用过。我使用了上面提到的链接中的解决方案2,它将新窗口添加到子视图中 此链接中提供的解决方案运行得非常好。但我在这里遇到的问题是,当我在webview中打开多个窗口时,我无法关闭打开它的父窗口。窗口的打开和关闭由远程服务器上编写的简单代码控制,这些代码只包括window.open(“一些有效的url”)和window.close()以分别打开和关闭窗口 我将webview设置为www.somevalidul.com,它具有打开和关闭窗口的代码 例如: 主页-->然后主页打开窗口A-->然后窗口

我用过。我使用了上面提到的链接中的解决方案2,它将新窗口添加到子视图中

此链接中提供的解决方案运行得非常好。但我在这里遇到的问题是,当我在
webview
中打开多个窗口时,我无法关闭打开它的父窗口。窗口的打开和关闭由远程服务器上编写的简单代码控制,这些代码只包括
window.open(“一些有效的url”)
window.close()
以分别打开和关闭窗口

我将webview设置为www.somevalidul.com,它具有打开和关闭窗口的代码

例如: 主页-->然后主页打开窗口A-->然后窗口A打开窗口B,现在如果我关闭窗口B然后尝试关闭窗口A,窗口A将不会关闭

因此,我无法返回主页

我正在添加分别用于打开关闭窗口的代码:

class ViewController: UIViewController, UIWebViewDelegate, CLLocationManagerDelegate,WKUIDelegate,WKNavigationDelegate
{
    @IBOutlet weak var webView: WKWebView!
    var popupWebView: WKWebView?
    ...
    func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
            popupWebView = WKWebView(frame: view.bounds, configuration: configuration)
            popupWebView!.autoresizingMask = [.flexibleWidth, .flexibleHeight]
            popupWebView!.navigationDelegate = self
            popupWebView!.uiDelegate = self
            view.addSubview(popupWebView!)
            return popupWebView!
        }
    func webViewDidClose(_ webView: WKWebView) {
        if webView == popupWebView {
            popupWebView?.removeFromSuperview()
            popupWebView = nil
        }
    }
    ...
}
我共享了用于打开和关闭windows的唯一代码。我想允许在我的应用程序中打开和关闭多个窗口。任何帮助都将不胜感激


请询问您是否需要有关该问题的更多详细信息。

在进行了一些搜索和尝试之后,我通过更改
webViewDidClose
中的代码找到了我自己问题的答案,如下所示:

    func webViewDidClose(_ webView: WKWebView) {
        webView.removeFromSuperview()
        popupWebView = nil
    }
希望这能帮助其他面临同样问题的人