简体   繁体   English

如何在swift 4中从WKWebView中的网页中删除DIV标签?

[英]How to remove DIV tag from webpage in WKWebView in swift 4?

I want to remove the header and footer div tags from my webpage when loading it into the WKWebVIew in swift 4. I have tried the following code.我想在 swift 4 中将它加载到 WKWebVIew 时从我的网页中删除页眉和页脚 div 标签。我尝试了以下代码。 but it was not working.. give me solution for this!但它不起作用..给我解决方案!

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.
   }
}

I think you should wait for the site is loaded.我认为你应该等待网站加载。

You need the WKNavigationDelegate and evaluate your script in您需要WKNavigationDelegate并在

func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
   print("Finished navigating to url \(webView.url)");
}

Actually your site is not loaded while you want to evaluate your script.实际上,当您要评估脚本时,您的网站并未加载。

** update ** ** 更新 **

You need something like this你需要这样的东西

// 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.
   }
}

消除<div><br>来自目标 C 中的 WKwebview</div><div id="text_translate"><p> 我有字符串:</p><pre> &lt;div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;div style="box-sizing: border-box; font-family: 'Segoe UI', 'Helvetica Neue', 'Apple Color Emoji', 'Segoe UI Emoji', Helvetica, Arial, sans-serif; font-size: 14px;"&gt;&lt;br/&gt;&lt;div data-tid="messageBodyContainer"&gt;&lt;br/&gt;&lt;div data-tid="messageBodyContent"&gt;&lt;br/&gt;&lt;div&gt;Thanks for agreeing to participate in our online bulletin board &lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</pre><p> 它由许多和<br> . 这个字符串来自服务器。所以它并不总是固定的。 我需要编写一些动态逻辑,如果它包含多个 div 和 br 则只有它会被删除。</p></div> - Remove <div><br> from WKwebview in objective C

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 消除<div><br>来自目标 C 中的 WKwebview</div><div id="text_translate"><p> 我有字符串:</p><pre> &lt;div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;div style="box-sizing: border-box; font-family: 'Segoe UI', 'Helvetica Neue', 'Apple Color Emoji', 'Segoe UI Emoji', Helvetica, Arial, sans-serif; font-size: 14px;"&gt;&lt;br/&gt;&lt;div data-tid="messageBodyContainer"&gt;&lt;br/&gt;&lt;div data-tid="messageBodyContent"&gt;&lt;br/&gt;&lt;div&gt;Thanks for agreeing to participate in our online bulletin board &lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</pre><p> 它由许多和<br> . 这个字符串来自服务器。所以它并不总是固定的。 我需要编写一些动态逻辑,如果它包含多个 div 和 br 则只有它会被删除。</p></div> - Remove <div><br> from WKwebview in objective C 如何从代码中动态删除div标签? - How to remove div tag dynamically from code? 如何从网页中删除带有其他文本的html标签? - How to remove html tag from webpage with some other text? 如何删除div标签? - How to remove div tag? 如何从WKWebView Swift调用此javascript函数? - How to call this javascript function from WKWebView Swift? 从通过URL swift加载的WKWebView中删除元素 - Remove element from WKWebView loaded via URL swift 从中删除表格 <div> 标签 - Remove table from <div> tag 如何删除div标签内容? - How to remove div tag content? 如何使用wkwebview从Swift将boolean返回到javascript函数 - How to return boolean to javascript function from swift using wkwebview 如何在WKWebView中将数据从Javascript传递到Swift? - How to pass data from Javascript to Swift within a WKWebView?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM