我將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