我有一个嵌入的 Cocoa 应用程序WebView
。我已经设置我的委托来响应一些可以从 JavaScript 调用的自定义 Objective-C 函数。例如,在 JavaScript 中,我将能够调用类似console.log()
我将委托设置如下:
- (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame {
[self.webView.windowScriptObject setValue:self forKey:@"console"];
}
现在,当我导航到另一个页面然后使用后退按钮(通过WebView goBack:
)时,不会调用上述方法并且我无法设置console
对象。
但是,JavaScript 对象仍然存在(typeof(console)
returns object
),但在其上调用任何函数都没有任何效果。
首先,有人知道为什么didClearWindowObject:
我调用时不调用goBack:
吗?有什么建议可以调试 JavaScript 对象吗?