我已经设置了一个使用UIWebView的应用程序。 UIWebView用于显示使用CSS格式化的文本。在文本中是链接(a href = ...)。 href的格式如下:tags.tagname
当用户点击链接时,我想拦截请求并根据HREF的内容使用loadHTMLString。
我已经成功解析了网址,但是我对如何告诉webview不加载请求的href并加载我想要的字符串感到困惑。
我在ShouldStartLoadWithRequest中尝试了以下内容:
genHTML=[self genTagPage:parsedString]; // a string declared earlier
[self.noteHTML loadHTMLString:genHTML baseURL:nil];
return NO;
但是当代码执行时,我收到以下错误:
2011-04-19 22:39:21.088 TestApp[27026:207] *** -[_PFArray release]: message sent to deallocated instance 0xaa3cf40
genHTML正在填充正确的数据,所以我不知道如何继续。
感谢。
答案 0 :(得分:3)
听起来您只需要阻止链接的默认操作,如下所示:
<a href="somewhere.html" onClick="doSomething(); return false">
查看quirksmode了解详情。
修改强> 重新阅读原始代码,看起来你的循环无限循环。当shouldStartLoadWithRequest点击链接时调用一次,然后在loadHTMLString行上无限调用。以navigationType为条件的调用可以解决您的问题:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if(navigationType==UIWebViewNavigationTypeLinkClicked)
{
genHTML=[self genTagPage:parsedString]; // a string declared earlier
[self.noteHTML loadHTMLString:genHTML baseURL:nil];
return NO;
}
return YES;
}