如何控制UIWebView's javascript
How to control UIWebView's javascript
这是UIWebview和UIView上的切换按钮。
网页包含javascript。
我想控制UIWebView的javascript。
我想要的是,每当按钮在UIView上被切换,javascript是打开或关闭。
有可能吗?
如果是,我该怎么办?很遗憾,我不知道。
这是我的javascript代码:- (void)viewDidLoad
{
[super viewDidLoad];
NSString *var = nil;
var = @"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>"
"<html> "
" <head> "
" <title> New Document </title> "
"<script type='text/javascript'> "
"function colorChange(){ "
" var id=document.getElementById('yellow'); "
" var backcolor = id.style.backgroundColor; "
" "
" if (backcolor != '') "
" { "
" id.style.backgroundColor = ''; "
" }else{ "
" id.style.backgroundColor = '#ffff00'; "
" } "
" "
"} "
"</script> "
" </head> "
" <body> "
"<script type='text/javascript'> "
"</script> "
" "
"<span id='yellow' ><a href='"javascript:void(0)'" onclick='colorChange();'><font size=12>text</font></a></span></head></html>";
[self.webView loadHTMLString:var baseURL:nil];
}
不认为有可能为UIWebView禁用JavaScript。
但是你可以使用UIWebView的stringByEvaluatingJavaScriptFromString:
方法,为了执行特定的JS代码,所有的JS函数,等等
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
例如:[ self.webView stringByEvaluatingJavaScriptFromString: @"colorChange();" ];
如果你想停用你已经设置的onclick()
,你可以设置一个全局变量与stringByEvaluatingJavaScriptFromString:
,并检查该变量在你的colorChange
函数。如果它有值,做点什么,否则什么都不做。
var colorChangeEnabled = true;
function colorChange()
{
if( colorChangeEnabled == false ) return;
...
所以:
[ self.webView stringByEvaluatingJavaScriptFromString: @"colorChangeEnabled = false;" ];
其实是两个部分的问题。
如果你用javascript做一个用户交互,它不能随后代理调用到iOS sdk。你可以做相反的事情——让一个动作在iOS元素的webview中发生,但你不能做相反的事情。
第二,在UIWebView对象中没有公共API来禁用/启用javascript。
你可以在Safari中打开/关闭它,所以有一种方法可以禁用引擎,但这似乎是一个私人方法,所以它的使用将在任何应用商店提交中被禁止。
相关文章:
- Javascript窗口.open中的UTF8字符串将被UIWebview's应该启动LoadWithReque
- Javascript touchend(滚动)事件在ios 4中的UIWebView中不起作用
- uiWebview 调用 javascript 函数语法
- UIWebview在页面上执行注入的JavaScript后的屏幕截图
- 在自动填充后,在UIWebView中执行Javascript后验证Label的长度
- Javascript返回内容/字符串;不适合UIWebView的给定宽度和高度
- I'我正在尝试将JavaScript加载到我的UIWebView中
- Xcode-UIWebview不显示CSS、Javascript或外部内容
- 如何将swift对象传递给javascript(UIWebView/objective-C)
- 将javascript注入uiwebview以调整字体大小
- UIWebView 无法将 JavaScript 作为 document.getElementById 运行,返回 nu
- iOS的UIWebView使用的JavaScript引擎的名称是什么?
- 在 Objective-C 中侦听来自 UIWebView Javascript 的通知
- 如何在UIWebview中启用JavaScript
- 通过 Swift 中的 UIWebView 从 Javascript 传递数组
- UIWebview open URL in mobile safari using javascript
- uiwebview JavaScript HTML 仅获取面向用户的正文文本
- 使用 javascript 从 uiwebview 的网页获取值
- HTML 拒绝包含 Javascript [UIWebView]
- 使用javascript/uiwebview-ios动态高亮显示