【问题标题】:how to hide html elements in wkwebview in IOS?如何在IOS的wkwebview中隐藏html元素?
【发布时间】:2018-06-12 17:29:39
【问题描述】:
我想使用 swift 4、xcode 9 在 wkwebview 中隐藏某些 html 元素。我知道如何在 android 中做到这一点,并添加了下面的代码。对于 wkwebView,我只需要 swift 4 中 ios 的等效代码。
myWebView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view, String url)
{
myWebView.loadUrl("javascript:(function() { " +
"document.getElementById('divHeader')
[0].style.display='none'; " +
"})()");
}
});
myWebView.loadUrl(URL);
【问题讨论】:
标签:
ios
swift
xcode
webkit
wkwebview
【解决方案1】:
使用 WKWebView
import WebKit
类 FirstViewController: UIViewController, WKNavigationDelegate {
@IBOutlet weak var webVw: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webVw.navigationDelegate = self
loadmyPage(htmlstr: "https://www.mywebsite.com")
}
func loadmyPage(htmlstr:String){
let url = URL (string: htmlstr)
let request = URLRequest(url: url!)
webVw.load(request)
}
//MARK:- WKNavigationDelegate
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
print(error.localizedDescription)
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print("Start to load")
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("finish to load")
let elementID = "right_sidebar"
let removeElementIdScript = "var element = document.getElementById('\(elementID)'); element.parentElement.removeChild(element);"
webView.evaluateJavaScript(removeElementIdScript) { (response, error) in
debugPrint("Am here")
}
}