代码之家  ›  专栏  ›  技术社区  ›  Dr_Mom

jscontext onload触发器

  •  -1
  • Dr_Mom  · 技术社区  · 6 年前

    我需要把那一堆代码从objective-c重写成swift:

        JSContext *jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    jsContext[@"loaded"] = ^{
        NSLog(@"Content Loaded!");
    };
    

    问题是在加载webview时获取上下文。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Dr_Mom    6 年前

    为swift找到了一个解决方案:

     if let jsContext = svtwebView?.value(forKeyPath: "documentView.webView.mainFrame.javaScriptContext") as? JSContext {
                    let loaded: @convention(block) () -> Void = {
                        print("Loaded:")
                    }
                    jsContext.setObject(loaded, forKeyedSubscript: "loaded" as NSCopying & NSObjectProtocol)
                    jsContext.evaluateScript("loaded")
                }