が埋め込まれた 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)
return object
)、関数を呼び出しても何の効果もありません。
まず、didClearWindowObject:
私が呼び出したときに が呼び出されない理由を知っている人はいgoBack:
ますか? JavaScript オブジェクトをデバッグする方法について何か提案はありますか?