更改html文本颜色而不重新加载webview

时间:2015-04-18 12:31:26

标签: javascript html ios webview

我想知道如何在不重新加载webview的情况下更改html文本颜色,因为使用当前使用的代码,当我向下滚动webview并按住html文件然后单击我设置的按钮更改html文本颜色,页面再次跳转到html文件的开头。我认为这是因为每次单击按钮时都会重新加载webview。你觉得怎么样?

我使用的代码

NSString *myHtmlFile = [[NSBundle mainBundle] pathForResource:htmlName ofType:@"htm"];

NSString* text = [NSString stringWithContentsOfFile:myHtmlFile encoding:NSUTF8StringEncoding error:nil];


[self.myWebView loadHTMLString:[NSString stringWithFormat:@"<html><body  text=\"#000000\" face=\"Bookman Old Style, Book Antiqua, Garamond\" size=\"5\">%@</body></html>", text] baseURL: nil];

我没有任何javascript经验,所以如果你能简化你的答案,那将会非常有帮助。

2 个答案:

答案 0 :(得分:1)

我注意到,为了更改已加载的html文件的文本颜色,使用以下代码更好,因为它不会导致webview重新加载。但值得注意的是,此代码仅在更改已加载的html文件时才适用于我。

[_myWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.color =\"Black\""];

但是当我想要更改新html文件(正在加载)的文本颜色时,以下代码对我来说效果更好。

NSString * myHtmlFile = [[NSBundle mainBundle] pathForResource:htmlName ofType:@"htm"];

NSString* text = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",htmlFile);


[self.myWebView loadHTMLString:[NSString stringWithFormat:@"<html><body  text=\"#000000\" face=\"Bookman Old Style, Book Antiqua, Garamond\" size=\"5\">%@</body></html>", text] baseURL: nil];

答案 1 :(得分:-1)

当你添加标签时,这意味着webview会将其视为一个新页面并重新加载你可以用javascript或jQuery实现你的任务:)