javascript - 如何控制UIWebView的javascript

标签 javascript ios uiview uiwebview

就是 UIWebview 和 UIView 上的切换按钮。

网页包含javascript。

我想控制 UIWebView 的 javascript。

我想要的是,只要切换 UIView 上的 Button,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 函数。如果它有一些值(value),就做点什么,否则什么都不做。

var colorChangeEnabled = true;
function colorChange()
{
    if( colorChangeEnabled == false ) return;
    ...

所以:

[ self.webView stringByEvaluatingJavaScriptFromString: @"colorChangeEnabled = false;" ];

关于javascript - 如何控制UIWebView的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325841/

相关文章:

javascript - 如何处理一长串选项卡

swift - 在 UIView.Animate 中执行 2 CGAffineTransform - Swift

javascript - 双击div,p,span时如何获取选中的单词?

iphone - APNS 只能通过命令行工作

View 转换时 iOS 7 UINavigationBar 未隐藏

ios - 更新 Xcode 11 和 IOS 13 后 Tabbar 按钮插入错误

ios - 如何在第二次按下 uibutton 时反转 UIVIew 动画?

ios - 在 3 个按钮上滑动手指 - Xcode 和 Swift

javascript - 检查 javascript 中可用 Prop 或方法的最佳实践?

javascript - D3 中的计数总和