我想知道如何在不重新加载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经验,所以如果你能简化你的答案,那将会非常有帮助。
答案 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实现你的任务:)