我将UIWebView控件添加到我的应用程序中。UIWebView - 创建自定义上下文菜单?
要禁用默认上下文菜单,我实现了webViewDidFinishLoad。
- (void) webViewDidFinishLoad:(UIWebView *)theWebView {
NSString *varMySheet = @"var mySheet = document.styleSheet[0];";
NSString *addCSSRule = @"function addCSSRule(selector, newRule) {"
"if (mySheet.addRule) {"
"mySheet.addRule(selector, newRule);"
"} else {"
"ruleIndex = mySheet.cssRules.length;"
"mySheet.insertRule(selector + '{' + newRule + ';}', ruleIndex;"
"}"
"}";
...
NSString *insertRule = @"addCSSRule('body', '-webkit-touch-callout: none;')";
[webView stringByEvaluatingJavaScriptFromString:varMySheet];
[webView stringByEvaluatingJavaScriptFromString:addCSSRule];
[webView stringByEvaluatingJavaScriptFromString:insertRule];
...
}
但是webview的上下文菜单并没有消失。任何人都帮助我。
我也试过
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
它没有工作。 谢谢。
您的方法被命名为“webViewDidLoadFinished:',而不是'webViewDidFinishLoad:'。这是问题和/或代码中的错字吗? – Jilouc
不好意思问这个问题,但我认为需要提问。你有没有设置'UIWebView''委托'属性,你确定代码正在执行? – nloko
当然。我添加[webView setDelegate:self]。 – cyberworld