如何在 swift 4 的 WKWebView 中从网页中删除 DIV 标签?
How to remove DIV tag from webpage in WKWebView in swift 4?
我想在将网页加载到 swift 4 中的 WKWebVIew 时从我的网页中删除页眉和页脚 div 标记。
我尝试了以下代码。但它不工作..
给我解决方案!
class ViewController: UIViewController {
@IBOutlet var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
var url: URL?
url = URL(string: "https://www.walkmate.co.in")
let request = URLRequest(url: url!)
webView.load(request)
let script="function(){ var footer=document.getElementsByClassName('footer-env')[0]; footer.parentNode.removeChild(footer); })())"
webView.evaluateJavaScript(script) { (result, error) in
if error != nil {
print(result)
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我认为您应该等待网站加载完成。
您需要 WKNavigationDelegate
并在
中评估您的脚本
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
print("Finished navigating to url \(webView.url)");
}
实际上,当您要评估脚本时,您的网站并未加载。
** 更新 **
你需要这样的东西
// add the protocol
class ViewController: UIViewController, WKNavigationDelegate {
@IBOutlet var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
var url: URL?
url = URL(string: "https://www.walkmate.co.in")
let request = URLRequest(url: url!)
webView.navigationDelegate = self // set the delegate
webView.load(request)
}
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
print("Finished navigating to url \(webView.url)");
let script="function(){ var footer=document.getElementsByClassName('footer-env')[0]; footer.parentNode.removeChild(footer); })())"
webView.evaluateJavaScript(script) { (result, error) in
if error != nil {
print(result)
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我想在将网页加载到 swift 4 中的 WKWebVIew 时从我的网页中删除页眉和页脚 div 标记。 我尝试了以下代码。但它不工作.. 给我解决方案!
class ViewController: UIViewController {
@IBOutlet var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
var url: URL?
url = URL(string: "https://www.walkmate.co.in")
let request = URLRequest(url: url!)
webView.load(request)
let script="function(){ var footer=document.getElementsByClassName('footer-env')[0]; footer.parentNode.removeChild(footer); })())"
webView.evaluateJavaScript(script) { (result, error) in
if error != nil {
print(result)
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我认为您应该等待网站加载完成。
您需要 WKNavigationDelegate
并在
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
print("Finished navigating to url \(webView.url)");
}
实际上,当您要评估脚本时,您的网站并未加载。
** 更新 **
你需要这样的东西
// add the protocol
class ViewController: UIViewController, WKNavigationDelegate {
@IBOutlet var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
var url: URL?
url = URL(string: "https://www.walkmate.co.in")
let request = URLRequest(url: url!)
webView.navigationDelegate = self // set the delegate
webView.load(request)
}
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
print("Finished navigating to url \(webView.url)");
let script="function(){ var footer=document.getElementsByClassName('footer-env')[0]; footer.parentNode.removeChild(footer); })())"
webView.evaluateJavaScript(script) { (result, error) in
if error != nil {
print(result)
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}