How To Control Uiwebview's Javascript
Solution 1:
Don't think it's possible to disable JavaScript for a UIWebView.
But you can use the stringByEvaluatingJavaScriptFromString:
method of UIWebView, in order to execute specific JS code, all a JS function, etc.
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
For instance:
[ self.webView stringByEvaluatingJavaScriptFromString: @"colorChange();" ];
If you want to deactivate the onclick()
you've set, you can for instance set a global variable with stringByEvaluatingJavaScriptFromString:
, and check for that variable in your colorChange
function. If it has some value, do something, otherwise, do nothing.
var colorChangeEnabled = true;
function colorChange()
{
if( colorChangeEnabled == false ) return;
...
And so:
[ self.webView stringByEvaluatingJavaScriptFromString: @"colorChangeEnabled = false;" ];
Solution 2:
Two part question, really.
If you're doing a user-interaction in javascript, it cannot subsequently broker a call into the iOS SDKs. You can do the reverse -- cause an action to occur within the webview from an iOS element, but you can't do the reverse.
Second, there's no public API for disabling/enabling javascript within an UIWebView object.
You can turn it on/off for Safari, so there's a way to disable the engine, but it seems to be a private method, so it's use will be prohibited in any app store submission.
Post a Comment for "How To Control Uiwebview's Javascript"