Swift & UIWebView 元素隐藏

Posted

技术标签:

【中文标题】Swift & UIWebView 元素隐藏【英文标题】:Swift & UIWebView element to hide 【发布时间】: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? 谢谢。

【问题讨论】:

【参考方案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; ” 是好吗? 我真的不能说,我没有任何经验。你将不得不解决它。我试图找到关于它是如何工作的信息,但我找不到任何信息。

以上是关于Swift & UIWebView 元素隐藏的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 UIWebView 的情况下在 iOS 10 中显示带有 HTML 标签的文本(使用 swift)

在 UITableview swift 中使用 UILabel 和 UIWebView 设置 heightForRow

swift - UIWebView 和 WKWebView(iOS12 之后替换UIWebView)

UIWebView 不显示(Swift)

未调用 UIWebView webViewDidLoadFinish 方法

在 UIWebView 中调整文本大小 - Swift 3