zoukankan      html  css  js  c++  java
  • iOS:在OC中调用JS脚本

    示例一:在webView中调用js脚本进行搜索

    1.首先导入JavaScriptCore.framework这个框架

    2.创建webView、设置代理、请求手机端百度

    #import "ViewController.h"
    #import <JavaScriptCore/JavaScriptCore.h>
    
    #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
    #define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
    
    @interface ViewController ()<UIWebViewDelegate>
    @property (strong,nonatomic)UIWebView *webView;
    @property (assign,nonatomic)BOOL isFirstLoadWeb;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.webView = [[UIWebView alloc]initWithFrame:self.view.bounds];
        self.webView.scalesPageToFit = YES;
        self.webView.backgroundColor = [UIColor clearColor];
        self.webView.delegate = self;
        [self.view addSubview:self.webView];
        NSURL *URL = [NSURL URLWithString:@"http://m.baidu.com"];
        NSURLRequest *request = [[NSURLRequest alloc]initWithURL:URL];
        [self.webView loadRequest:request];
    }

    3.通过代理方法,在里面调用自定义的JS脚本

    -(void)webViewDidFinishLoad:(UIWebView *)webView{
        
        //程序会一直调用该方法,所以判断若是第一次加载后使用我们自定义的js,此后不再调用JS,否则会出现网页抖动现象
        if (!_isFirstLoadWeb) {
            _isFirstLoadWeb = YES;
            
            //获取当前页面的url
            NSString *url = [webView  stringByEvaluatingJavaScriptFromString:@"document.location.href"];
            //获取页面的title
            NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
            
            NSLog(@"%@----%@",url,title);
            
            //给webView添加一个自定义的JavaScript
            [webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
                "script.type = 'text/javascript';"
                "script.text = "function myFuncation(){"
                "var field = document.getElementsByName('word')[0];"
                "field.value = '夏先森的博客园';"
                "document.forms[0].submit();"
             "}";"
             "document.getElementsByTagName('head')[0].appendChild(script);"];
            
            //开始调用自定义的JavaScript
            [webView stringByEvaluatingJavaScriptFromString:@"myFuncation();"];
    
        }else{
            return;
        }
    }
    
    @end

    演示截图如下:

    2016-04-18 21:37:24.670 OC调用JS[7568:356964] https://m.baidu.com/----百度一下

      

    示例二:通过滑动条动态改变网页中字体的大小

    1.首先导入JavaScriptCore.framework这个框架

    2.创建webView、设置代理、请求手机端百度

    #import "ViewController.h"
    #import <JavaScriptCore/JavaScriptCore.h>
    
    #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
    #define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
    
    @interface ViewController ()<UIWebViewDelegate>
    @property (strong,nonatomic)UIWebView *webView;
    @property (strong,nonatomic)UIActivityIndicatorView *activityIndicator;
    @property (strong,nonatomic)UISlider *slider;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        //1.创建slider
        _slider = [[UISlider alloc]initWithFrame:CGRectMake(10, 40, SCREEN_WIDTH-20, 20)];
        [_slider addTarget:self action:@selector(SliderChanged) forControlEvents:UIControlEventValueChanged];
        _slider.maximumValue = 1000.0f;
        _slider.minimumValue = 10.0f;
        _slider.value = 10.0f;
        [self.view addSubview:_slider];
        
        //2.创建webView
        self.webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 80, SCREEN_WIDTH, SCREEN_HEIGHT-80)];
        self.webView.scalesPageToFit = YES;
        self.webView.backgroundColor = [UIColor clearColor];
        self.webView.delegate = self;
        [self.view addSubview:self.webView];
        NSURL *URL = [NSURL URLWithString:@"http://m.baidu.com"];
        NSURLRequest *request = [[NSURLRequest alloc]initWithURL:URL];
        [self.webView loadRequest:request];
        
        //3.创建活动指示器
        _activityIndicator = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0, 0, 40, 50)];
        _activityIndicator.center = self.view.center;
        _activityIndicator.backgroundColor = [UIColor grayColor];
        _activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
        [self.view addSubview:_activityIndicator];
    }

    3.滑动滑动条来改变网页字体大小

    -(void)SliderChanged{
        NSString *str1 = [NSString stringWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust = '%f%%'",_slider.value];
        
        [_webView stringByEvaluatingJavaScriptFromString:str1];
    }
    @end

    演示截图如下:

      

  • 相关阅读:
    详解Windows注册表分析取证
    逻辑漏洞简单的分析
    文件解析漏洞汇总
    aspcms 这个靶场。。。
    WebBug靶场基础篇 — 03
    WebBug靶场基础篇 — 02
    WebBug靶场介绍篇 — 01
    漏洞挖掘中的常见的源码泄露
    PHP对象Object的概念
    从史上八大MySQL事故中学到的经验
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/5405997.html
Copyright © 2011-2022 走看看