简体   繁体   English

如何使用JavaScript更改UIWebView字体?

[英]How to change UIWebView font by using JavaScript?

I am wondering how to change font by using JavaScript. 我想知道如何通过使用JavaScript来更改字体。

While this: 虽然这样:

let fontName = "AmericanTypewriter-CondensedBold"

    if let infoString = config.textAboutApplication {
        infoView.loadHTMLString(NSString(format: "<div style='text-align:left;font-family:%@'>%@<div>", fontName, infoString) as String, baseURL: nil)
    }

produces proper outcome with formatted text, JavaScript version does not: 产生带有格式文本的正确结果,JavaScript版本不会:

    func webViewDidFinishLoad(webView: UIWebView)
{
    let fontName = "AmericanTypewriter-CondensedBold"

    let jsString =  NSString(format: "document.getElementById('p').style.fontFamily = '%@'", fontName)
    webView.stringByEvaluatingJavaScriptFromString(jsString as String)
}

The HTML text does have p tag and text inside, so I am doing something wrong regarding the JavaScript part probably. HTML文本的内部确实带有p标签和文本,所以关于JavaScript部分,我可能做错了。

Ok I was trying thing around, JavaScript is not my strongest thing, and this works 好的,我正在尝试,JavaScript不是我最强的东西,这可行

let fontName = "AmericanTypewriter-CondensedBold"

    let jsString =  NSString(format: "document.getElementsByTagName('p')[0].style.fontFamily = '%@'", fontName)
    let js = webView.stringByEvaluatingJavaScriptFromString(jsString as String)

EDIT: I did custom implementation regarding this messy solution to be more swifty cool. 编辑:我对此杂乱的解决方案进行了自定义实现,以使其变得更加快捷。 :) https://github.com/Vanyaslav/Swiftyyjsformatter :) https://github.com/Vanyaslav/Swiftyyjsformatter

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM