如何在 iOS 中将 javascript 附加到 UIWebView 中?

Posted

技术标签:

【中文标题】如何在 iOS 中将 javascript 附加到 UIWebView 中?【英文标题】:How to append javascript into UIWebView in iOS? 【发布时间】:2012-05-17 07:53:14 【问题描述】:

我正在尝试更改 UIWebView 中的字体。 我尝试使用以下代码更改字体。

NSString *path = [[NSBundle mainBundle] bundlePath];
    NSString *cssPath = [path stringByAppendingPathComponent:@"test.css"]; 

    if(!cssPath)
    
        NSLog(@"NO");
    

    NSString *js = [NSString stringWithFormat:@"var cssChild = document.createElement('link');"
                    "cssChild = 'text/css';"
                    "cssChild = 'stylesheet';"
                    "cssChild = '%@';", cssPath];
    js = [NSString stringWithFormat:@"%@ document.getElementsByTagName('head')[0].appendChild(cssChild);", js];

    [webViewOfInitial stringByEvaluatingjavascriptFromString:js];

我将 css 文件附加到从 Internet 加载的页面的标题中。 我的 css 文件是这样的。

@font-face 
    font-family: 'Zawgyi-One';
    font-style: normal;
    src: local('Zawgyi-One');


body 
    font-family: 'Zawgyi-One';

但是,当我在完成页面加载后检索 html 标签时,我找不到上面的 css 标签。 那么我如何将该css文件附加到UIWebView's标题标签的当前页面中? 或者UIWebView换字体还有其他教程吗?

谢谢。

【问题讨论】:

【参考方案1】:

您正朝着正确的方向前进,但您没有提及您尝试更改的委托方法。 您可以将 javascript 保存在 .js 文件中,因为您以后可能会对其进行更改,并且通过代码(而不是 js 文件)反映更改真的很麻烦。尝试使用这个:-

您必须使用正确的 baseURL 参数将 HTML 加载到视图中,才能在 UIWebView 中使用相对路径或文件。

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSURL *baseURL = [NSURL fileURLWithPath:path];     
[webView loadHTMLString:htmlString baseURL:baseURL]; 

baseURL 接受一个 NSURL 对象作为文件引用。您可以根据需要指定一个本地 URL 或 Web 对象。将 css 文件附加到 webViewDidFinishLoad:(UIWebView *)webView 中。

注意:-选择 .js 文件并取消选中表示它为已编译代码的靶心列。(如果不这样做,您只会收到警告)。

这是一个UIWebview Javascript Tutorial,可能会让你继续前进。

【讨论】:

如果可以的话,请用静态 HTML 页面为我的问题编写一个示例项目。我真的需要。请。 htmlstring 是你的 html 内容。它可以是一个 NSString 或一个直接指向 html 文件的 NSString 你能帮我做示例项目吗?我真的需要你的帮助。请。 嗨,我无法帮助您完成项目,因为我自己正在做一个项目,但我将在我的帖子中编辑一个链接..看到它..它有你需要的一切从根..到结束

以上是关于如何在 iOS 中将 javascript 附加到 UIWebView 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在ios中将图像上传到服务器?

我可以在javascript中将数组附加到“formdata”吗?

如何在 ios 中将变量从 javascript 传递到目标 C 和目标 C 到 Javascript

如何在javascript中将动态ID放在复选框中?

如何在swift中将数字附加到double

如何在 Xcode5 中将 PDF 文件附加到电子邮件中