2011-09-20 49 views
0

在我认为我的UITextView(在designMode中使用UIWebView)的弱长定制重新实现之前没有用处,有没有办法处理/取消javaScript onKeyUp等事件?从UIWebViewDelegate中取消javaScript事件

AFAIK只有通过-shouldLoadRequest发送消息:& stringByEvaluatingScriptWithString :.但是,这些调用是异步的,并且在执行stringByEvaluatingScriptWithString时,javaScript事件处理程序已经退出它的函数:因此事件取消方法不起作用。

如果不是这个功能,实现shouldReplaceCharactersInString:似乎是不可能的。 :(

回答

1

也许你可以检查我的开源实现一个“野生动物园象”浏览器: https://github.com/sylverb/CIALBrowser

在这其中,我没有重新实现长按处理,并禁用标准之一,我用这个:。

- (void) webViewDidFinishLoad:(UIWebView *) sender 
{ 
    // Disable the defaut actionSheet when doing a long press 
    [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"]; 
    [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"]; 
} 
+0

抱歉耽搁我想我设置成向我发送电子邮件更新,但我从来没有收到任何我会尝试看看在这个明天 – Anderson

+0

感谢您的答复,我相信在你的情况基本上断开了js事件处理程序,而是原生处理iOS touch事件。 – Anderson

+0

在我的情况下,iOS不允许在本地处理关键事件,因此不起作用。 – Anderson