如何在 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 中?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在javascript中将数组附加到“formdata”吗?