iOS UIWebView 与 JavaScript 交互 代码实现 嵌入 js 脚本

在做项目时,会经常碰到一些需要跟 html 页面元素 交互的问题,比如 传入一个参数进入 html  的 JavaScript 中, 或者动态修改html 页面元素. 起初遇到这些问题时, 我从互联网中查找相关的资料, 但很多都看不懂, 而且得到的答案跟自己需要的偏差很大。当回过头来看看, 其实也没那么复杂, 就两行代码 加一个 本地的js脚本。(这里我只写关键部分)


1. 创建自己想要插入的脚本 ,我这里取名为 newslist.js


2. JavaScript 脚本的插入


- (void)viewDidLoad

{

    [super viewDidLoad];


    _webView = [[UIWebView alloc] initWithFrame:self.view.bounds];

    _webView.delegate = self;

    

    NSString *urlstring = @"http://baidu.com";

    NSURL *url = [NSURL URLWithString:urlstring];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    [_webView loadRequest:request];

    

    [self.view addSubview:_webView];

}



-(void)webViewDidFinishLoad:(UIWebView *)webView

{

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"newslist.js" ofType:nil];

    // 如果jsString nil 说明newslist.js 文件不在 Build Phases --> Copy Bundle Resources中, 需要手动添加进去

    NSString *jsString = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

    

    [self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var script = document.createElement('script');"

          "script.type = 'text/javascript';"

          "script.text = %@", jsString]];

NSString *message = @"菜鸟";

[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"self.onload('%@')", message]];

}


  newslist.js脚本文件 中内容 

self.onload = function(listnew){


    var str = listnew + '也能编程';

    alert(str);

}


效果图:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值