国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

UIWebView的HTML5擴(kuò)展

2019-11-14 20:11:21
字體:
供稿:網(wǎng)友
http://blog.csdn.net/duzixi/article/details/36047201

 

對于不少iOS開發(fā)者來說,HTML5的內(nèi)容比較陌生。

尤其是UIWebView類的 stringByEvaluatingjavaScriptFromString 方法

讓很多人覺得又得學(xué)一種新的語言。

而這一部分也是項(xiàng)目中學(xué)生常問的問題之一。

本文以Category(類目)的方式擴(kuò)展了UIWebView類,將一些常用的Javascript操作封裝成UIWebView類方法。

 

最新源代碼下載地址:https://github.com/duzixi/UIWebView-HTML5(持續(xù)維護(hù))

 頭文件(UIWebView+HTML5.h)

////  UIWebView+HTML5.h//  WebViewJS////  Created by 杜子兮(duzixi) on 14-6-30.//  Edited  by 杜子兮(duzixi) on 14-7-11. 修改網(wǎng)頁圖片顯示大小//                                       添加(jQuery)//  Copyright (c) 2014年 lanou3g.com 藍(lán)鷗. All rights reserved.//#import <UIKit/UIKit.h>@interface UIWebView (JavaScript)#PRagma mark -#pragma mark 獲取網(wǎng)頁中的數(shù)據(jù)///  獲取某個標(biāo)簽的結(jié)點(diǎn)個數(shù)- (int)nodeCountOfTag:(NSString *)tag;///  獲取當(dāng)前頁面URL- (NSString *) getCurrentURL;///  獲取標(biāo)題- (NSString *) getTitle;///  獲取圖片- (NSArray *) getImgs;///  獲取當(dāng)前頁面所有鏈接- (NSArray *) getOnClicks;#pragma mark -#pragma mark 改變網(wǎng)頁樣式和行為///  改變背景顏色- (void) setBackgroundColor:(UIColor *)color;///  為所有圖片添加點(diǎn)擊事件(網(wǎng)頁中有些圖片添加無效)- (void) addClickEventOnImg;///  改變所有圖像的寬度- (void) setImgWidth:(int)size;///  改變所有圖像的高度- (void) setImgHeight:(int)size;///  改變指定標(biāo)簽的字體顏色- (void) setFontColor:(UIColor *) color withTag:(NSString *)tagName;///  改變指定標(biāo)簽的字體大小- (void) setFontSize:(int) size withTag:(NSString *)tagName;@end

 實(shí)現(xiàn)文件(UIWebView+HTML5.m):

////  UIWebView+HTML5.m////  Created by 杜子兮(duzixi) on 14-6-30.//  Edited  by 杜子兮(duzixi) on 14-7-11. 修改網(wǎng)頁圖片顯示大小//                                       添加(jQuery)//  Copyright (c) 2014年 lanou3g.com 藍(lán)鷗. All rights reserved.//#import "UIWebView+HTML5.h"#import "UIColor+Change.h"@implementation UIWebView (JavaScript)#pragma mark -#pragma mark 獲取網(wǎng)頁中的數(shù)據(jù)///  獲取某個標(biāo)簽的結(jié)點(diǎn)個數(shù)- (int)nodeCountOfTag:(NSString *)tag{    NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('%@').length", tag];    int len = [[self stringByEvaluatingJavaScriptFromString:jsString] intValue];    return len;}///  獲取當(dāng)前頁面URL- (NSString *)getCurrentURL{    return [self stringByEvaluatingJavaScriptFromString:@"document.location.href"];}///  獲取標(biāo)題- (NSString *)getTitle{    return [self stringByEvaluatingJavaScriptFromString:@"document.title"];}///  獲取所有圖片鏈接- (NSArray *)getImgs{    NSMutableArray *arrImgURL = [[NSMutableArray alloc] init];        for (int i = 0; i < [self nodeCountOfTag:@"img"]; i++) {        NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('img')[%d].src", i];        [arrImgURL addObject:[self stringByEvaluatingJavaScriptFromString:jsString]];    }    return arrImgURL;}///  獲取當(dāng)前頁面所有點(diǎn)擊鏈接- (NSArray *)getOnClicks{    NSMutableArray *arrOnClicks = [[NSMutableArray alloc] init];        for (int i = 0; i < [self nodeCountOfTag:@"a"]; i++) {        NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('a')[%d].getAttribute('onclick')", i];        NSString *clickString = [self stringByEvaluatingJavaScriptFromString:jsString];        NSLog(@"%@", clickString);        [arrOnClicks addObject:clickString];    }    return arrOnClicks;}#pragma mark -#pragma mark 改變網(wǎng)頁樣式和行為///  改變背景顏色- (void)setBackgroundColor:(UIColor *)color{    NSString * jsString = [NSString stringWithFormat:@"document.body.style.backgroundColor = '%@'",[color webColorString]];    [self stringByEvaluatingJavaScriptFromString:jsString];}///  為所有圖片添加點(diǎn)擊事件(網(wǎng)頁中有些圖片添加無效,需要協(xié)議方法配合截取)- (void)addClickEventOnImg{    for (int i = 0; i < [self nodeCountOfTag:@"img"]; i++) {        //利用重定向獲取img.src,為區(qū)分,給url添加'img:'前綴        NSString *jsString = [NSString stringWithFormat:            @"document.getElementsByTagName('img')[%d].onclick = /              function() { document.location.href = 'img' + this.src; }",i];        [self stringByEvaluatingJavaScriptFromString:jsString];    }}///  改變所有圖像的寬度- (void) setImgWidth:(int)size{    for (int i = 0; i < [self nodeCountOfTag:@"img"]; i++) {        NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('img')[%d].width = '%d'", i, size];        [self stringByEvaluatingJavaScriptFromString:jsString];    }}///  改變所有圖像的高度- (void) setImgHeight:(int)size{    for (int i = 0; i < [self nodeCountOfTag:@"img"]; i++) {        NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('img')[%d].height = '%d'", i, size];        [self stringByEvaluatingJavaScriptFromString:jsString];    }}///  改變指定標(biāo)簽的字體顏色- (void)setFontColor:(UIColor *)color withTag:(NSString *)tagName{    NSString *jsString = [NSString stringWithFormat:        @"var nodes = document.getElementsByTagName('%@'); /          for(var i=0;i<nodes.length;i++){/              nodes[i].style.color = '%@';}", tagName, [color webColorString]];    [self stringByEvaluatingJavaScriptFromString:jsString];}///  改變指定標(biāo)簽的字體大小- (void)setFontSize:(int)size withTag:(NSString *)tagName{    NSString *jsString = [NSString stringWithFormat:        @"var nodes = document.getElementsByTagName('%@'); /          for(var i=0;i<nodes.length;i++){/              nodes[i].style.fontSize = '%dpx';}", tagName, size];    [self stringByEvaluatingJavaScriptFromString:jsString];}@end

 原文出處:http://blog.csdn.net/duzixi/article/details/36047201


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 汉源县| 永寿县| 剑河县| 安仁县| 清水河县| 新疆| 香河县| 蛟河市| 沂水县| 板桥市| 兰西县| 长乐市| 锡林郭勒盟| 舒兰市| 襄汾县| 锡林郭勒盟| 石嘴山市| 德州市| 安丘市| 磴口县| 岫岩| 靖西县| 漳平市| 和龙市| 合作市| 崇义县| 琼结县| 科技| 威海市| 龙陵县| 兴隆县| 肃宁县| 策勒县| 龙州县| 福州市| 西青区| 四会市| 香格里拉县| 遂溪县| 登封市| 宝清县|