【问题标题】:Swift & UIWebView element to hideSwift & UIWebView 元素隐藏
【发布时间】:2015-09-02 14:28:28
【问题描述】:

我有一个 UIWebView 并像这样加载内容

let url = NSURL (string: "http://www.myresponsivesite.fr/section/");
    let requestObj = NSURLRequest(URL: url!);
    webView.loadRequest(requestObj);

它运行良好,但我想将一些 div 和其他元素不显示。所以我的问题是:如何快速从我的应用程序中注入一些 CSS? 谢谢。

【问题讨论】:

    标签: html ios css swift uiwebview


    【解决方案1】:

    我终于找到了另一种方法,我将我的 html 加载到一个变量中,并将一些 div 替换为“display:none”示例:

     let urlDeBase = "http://mywebsite/section/"    
        if let url = NSURL (string: urlDeBase){
            var error: NSError?
            let myHTML = String(contentsOfURL: url, encoding: NSUTF8StringEncoding, error: &error)
    

    我替换我想要的

     let mystring = myHTML?.stringByReplacingOccurrencesOfString("<h3 class=\"myclass\">Menu</h3>", withString: "<h3 class=\"myclass\" style=\"display:none\">Menu</h3>")
     webvieww.loadHTMLString(mystring, baseURL: nil)
    

    【讨论】:

      【解决方案2】:

      我发现了一些关于它的帖子和 Apple 文档,here 是一个解决方案:

      所以,我想我至少找到了一种方法来完成将样式附加到使用 Swift 加载的网页:

      var loadStyles = "var script = 
        document.createElement('link');
        script.type = 'text/css';
        script.rel = 'stylesheet';
        script.href = 'http://fake-url/styles.css';
        document.getElementsByTagName('body')[0].appendChild(script);"
      

      website.stringByEvaluatingJavaScriptFromString(loadStyles)

      这是另一个帖子:Swift stringByEvaluatingJavaScriptFromString

      然后是Apple docs

      【讨论】:

      • 如果我理解的话,var 将创建一个 css 文件,所以如果我在 var 中再添加一行:“script.text = #myId { display : none; }” 是好吗?
      • 我真的不能说,我没有任何经验。你将不得不解决它。我试图找到关于它是如何工作的信息,但我找不到任何信息。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多