WKWebView で表示する html を細工する必要があったので調べてみました。
とりあえず JavaScript を実行する
ただ JavaScript を実行すればいいのであれば evaluateJavaScript を使うのが簡単です。
webView.evaluateJavaScript("document.getElementById('hogehoge').innerHTML = '';", completionHandler: nil)
でもこの方法ではドキュメントロード時に実行する、といったことができません。
ドキュメント読み出し開始時、終了時に JavaScript を実行する
ほとんどのユースケースはこちらだと思いますがドキュメントロード時に JavaScript を実行したいです。
その場合は WKUserScript を作って WKWebViewConfiguration を WKWebView のコンストラクタに渡す方法があります。
let userScript1 = WKUserScript(source: "document.getElementById('hogehoge').innerHTML = '';", injectionTime: .AtDocumentEnd, forMainFrameOnly: true)
let controller = WKUserContentController()
controller.addUserScript(userScript1)
let configuration = WKWebViewConfiguration()
configuration.userContentController = controller
webView = WKWebView(frame: view.bounds, configuration: configuration)
こちらがシンプルでいいですね。