Inject Javascript into Webview - Swift
15,705
Solution 1
Just do:
let js = "var myelement = document.getElementById(\"test\");myelement.innerHTML= \"New Text\";"
webView.evaluateJavaScript(js, completionHandler: nil)
If you are using UIWebView
instead of WKWebView
, do this:
let js = "var myelement = document.getElementById(\"test\");myelement.innerHTML= \"New Text\";"
_ = webView.stringByEvaluatingJavaScript(from: js)
Solution 2
use WKWebview and use WKNavigationDelegate
Delegate
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
let str = "setData(\"\(uid)\",\"\(DataProvider.sharedInstance.baseUrl)\")"
self.webView.evaluateJavaScript(str) { (id, error) in
print(error)
}
}
Author by
user2423476
Updated on July 29, 2022Comments
-
user2423476 over 1 year
How can I inject javascript into a webview (IOS/Swift) after loading some custom html.
@IBOutlet weak var webView: UIWebView! var html = "<div id='test'></div>" self.webview.loadHTMLString(html, baseURL: nil)
I want to inject the following javascript into the webview after I load my custom html.
var myelement = document.getElementById("test"); myelement.innerHTML= "New Text";
-
user3773048 over 5 yearsIt's still there, just Swift 4-ized / modularized; try this signature:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
. (Injecting the JS here does the job for me -- thanks!)