我正在尝试在 webview 的 shouldStartLoadWithRequest 委托方法中运行下面的代码,但它没有进行任何更改。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSLog(@"webView shouldStartLoadingWithRequest");
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.execCommand('bold', false,null)"]];
return TRUE;
}
没有错误,它打印 NSLog 并且该方法中的所有内容都运行良好,除了“stringByEvaluatingJavaScriptFromString”方法。
但是,如果我尝试在另一个函数(例如 IBAction 方法)中使文本变为粗体,则效果很好。
-(IBAction)boldClick:(id)sender
{
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.execCommand('bold', false,null)"]];
}
实际上,这是我公司的特殊应用程序,这个 UIWebView 不会显示网页。我正在使用它来显示一些自定义 HTML 页面。我需要在“shouldStartLoadWithRequest”中制作所有内容,因为我正在尝试从 javascript 运行objective-c 方法。
更新
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
// Break apart request URL
NSString *requestString = [[request URL] absoluteString];
NSArray *components = [requestString componentsSeparatedByString:@":"];
// Check for your protocol
if ([components count]==3)
{
[self makeBoldText];
return NO;
}
else
{
return TRUE;
}
}
-(void)makeBoldText
{
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.execCommand('bold', false,null)"]];
}