|
| 1 | +# JQueryWeb |
| 2 | + |
| 3 | +#### 版本:v2.0 |
| 4 | +#### 开发者:CreaterOS |
| 5 | +#### 发布时间:2020.05.22 |
| 6 | +#### 项目完善:如果您在使用中发现任何BUG或者有任何宝贵意见,可直接通过[email protected]邮箱致电我们,我们尽最快的努力为您解决问题,并保证项目的稳定更新 |
| 7 | + |
| 8 | +## 版本迭代 |
| 9 | +历史版本 | Objective-C |描述 | Swift | 描述 |
| 10 | +---|---|---|---|--- |
| 11 | +v1.0 | v1.0 | 通过JQuery语法形式进行封装,快速高效的产生JS语句。 | / | 未开发 |
| 12 | +v2.0 | v1.0 | 未更新框架 | v1.0 | 根据Swift语法特点,优化框架。 |
| 13 | + |
| 14 | + |
| 15 | +--- |
| 16 | +#### **JQueryWeb是一款可以实现Web开发中JQuery和JavaScript无缝转换的操作,这是一款适用于Objective-C和Swift的开发框架。我们致力于使得网页修改过程变得更加快捷和稳定。** |
| 17 | + |
| 18 | +#### Objective-C版本:链式编程思想,贴合JQuery编码风格 |
| 19 | +#### Swift版本: Swift先天语法风格优势,更加契合JQuery编码风格 |
| 20 | +--- |
| 21 | + |
| 22 | +JQueryWeb是一个轻量级的Web框架,它更好的还原了JQuery语法形式,采用链式编程思想,使得开发更有效率,从而使得代码更简介易读。JQuery更好的支持IOS和Mac OSX。 |
| 23 | + |
| 24 | +使用JavaScript修改网页有什么问题? |
| 25 | +Objective-C和Swift官方给出的修改网页内容,通过WebView中提供的stringByEvaluatingJavaScriptFromString修改网页。但是,使用JS代码会使得代码是冗长的,并且在没有代码提示情况下,使得开发变得描述性差,并且出现很难发现的语法错误。想象一个,简单修改网页文本内容 |
| 26 | + |
| 27 | +**Objective-C:** |
| 28 | +``` |
| 29 | +NSString *str = document.getElementsByClassName('ac-gf-footer-legal-copyright')[0].innerText = 'CreaterOS' |
| 30 | +[webView stringByEvaluatingJavaScriptFromString:str]; |
| 31 | +``` |
| 32 | +**Swift:** |
| 33 | + |
| 34 | +``` |
| 35 | +webView.stringByEvaluatingJavaScript(from: "document.getElementsByClassName('ac-gf-footer-legal-copyright')[0].innerText = 'CreaterOS'") |
| 36 | +``` |
| 37 | + |
| 38 | +即使有这样一个简单的示例,所需的代码也很冗长。并且需要手动全部打出来,中间没有提供智能提示,假设,当您需要处理大量的网页修改时候,JavaScript很快就变得不可读,并且出现不可预知的错误的可能性也就更大。 |
| 39 | + |
| 40 | +--- |
| 41 | +JQueryWeb与您共进退 |
| 42 | +这是使用JQueryWebMaker创建的相同功能 |
| 43 | + |
| 44 | +**JQueryWeb-Objective-C:** |
| 45 | +``` |
| 46 | +[webView stringByEvaluatingJavaScriptFromString:JQueryWebMaker.JQueryClass(@".ac-gf-footer-legal-copyright").text(@"JQueryWeb")]; |
| 47 | +``` |
| 48 | +**JQueryWeb-Swift:** |
| 49 | +``` |
| 50 | +JQueryWebMaker.init(className: ".ac-gf-footer-legal-copyright").text(context: "JQueryWeb") |
| 51 | +``` |
| 52 | + |
| 53 | +JQueryWeb为您提供了更贴近JQuery原生语法的格式,采用链式操作,让您在开发中效率更好,对于需要下标时候,您也可以这样使用 |
| 54 | + |
| 55 | +**JQueryWeb-Objective-C:** |
| 56 | +``` |
| 57 | +[webView stringByEvaluatingJavaScriptFromString:JQueryWebMaker.JQueryClass(@".ac-gf-footer-legal-copyright").textWithIndex(0,@"JQueryWeb")]; |
| 58 | +``` |
| 59 | +**JQueryWeb-Swift:** |
| 60 | + |
| 61 | +``` |
| 62 | +JQueryWebMaker.init(className: ".ac-gf-footer-legal-copyright").text(index: 0, context: "JQueryWeb") |
| 63 | +``` |
| 64 | + |
| 65 | +### 如何使用 |
| 66 | +**JQueryWeb-Objective-C** |
| 67 | + |
| 68 | +使用JQueryWeb只需要导入JQueryWebMaker用来管理需要的JQuery代码 |
| 69 | + |
| 70 | +``` |
| 71 | +#import "JQueryWebMaker.h" |
| 72 | +``` |
| 73 | + |
| 74 | +**JQueryWeb-Swift** |
| 75 | + |
| 76 | +只需要将JQueryWeb文件夹拖入项目中,就可以直接使用 |
| 77 | + |
| 78 | +### 创建方式任由你选择: |
| 79 | + |
| 80 | +**JQueryWeb-Objective-C:** |
| 81 | +``` |
| 82 | +document.getElementsByTagName 等效于 JQuery |
| 83 | +``` |
| 84 | +``` |
| 85 | +document.getElementById 等效于 JQueryID |
| 86 | +``` |
| 87 | +``` |
| 88 | +document.getElementsByClassName 等效于 JQueryClass |
| 89 | +``` |
| 90 | +这三种创建方式传入的参数和JQuery原生语法相同。 |
| 91 | + |
| 92 | +**JQueryWeb-Swift:** |
| 93 | + |
| 94 | +建议只使用JQueryWebMaker创建管理需要处理的内容。 |
| 95 | +``` |
| 96 | +JQueryWebMaker.init(tagName: "tagName") |
| 97 | +``` |
| 98 | + |
| 99 | +``` |
| 100 | +JQueryWebMaker.init(idName: "#idName") |
| 101 | +``` |
| 102 | + |
| 103 | +``` |
| 104 | +JQueryWebMaker.init(className: ".className") |
| 105 | +``` |
| 106 | + |
| 107 | +### 常用修改网页参数对比表 |
| 108 | +#### 文本操作 |
| 109 | +JQuery | JQueryWeb |
| 110 | +---|--- |
| 111 | +text | text |
| 112 | +html | html |
| 113 | +val | val |
| 114 | + |
| 115 | +#### on操作 |
| 116 | +JQuery | JQueryWeb |
| 117 | +---|--- |
| 118 | +on | on |
| 119 | +on | onMoreOptions |
| 120 | +on | onMoreEventWithIndex |
| 121 | +onBlur | onBlur |
| 122 | +onFocus | onFocus |
| 123 | +onFocusin | onFocusin |
| 124 | +onLoad | onLoad |
| 125 | +onResize | onResize |
| 126 | +onScroll | onScroll |
| 127 | +onUnload | onUnload |
| 128 | +onClick | onClick |
| 129 | +onDblclick | onDblclick |
| 130 | +onMousedown | onMousedown |
| 131 | +onMouseup | onMouseup |
| 132 | +onMousemove | onMousemove |
| 133 | +onMouseover | onMouseover |
| 134 | +onMouseout | onMouseout |
| 135 | +onMouseenter | onMouseenter |
| 136 | +onMouseleave | onMouseleave |
| 137 | +onChange | onChange |
| 138 | +onSelect | onSelect |
| 139 | +onSubmit | onSubmit |
| 140 | +onKeydown | onKeydown |
| 141 | +onKeypress | onKeypress |
| 142 | +onKeyup| onKeyup |
| 143 | +onError | onError |
| 144 | +onContextmenu | onContextmenu |
| 145 | + |
| 146 | +#### css操作 |
| 147 | +JQuery | JQueryWeb |
| 148 | +---|--- |
| 149 | +css | css |
| 150 | + |
| 151 | +#### show操作 |
| 152 | +JQuery | JQueryWeb |
| 153 | +---|--- |
| 154 | +show | show |
| 155 | + |
| 156 | +#### hidden操作 |
| 157 | +JQuery | JQueryWeb |
| 158 | +---|--- |
| 159 | +hidden | hidden |
| 160 | + |
| 161 | +#### 长宽操作 |
| 162 | +JQuery | JQueryWeb |
| 163 | +---|--- |
| 164 | +height | height |
| 165 | +width | width |
| 166 | + |
| 167 | +#### 类型操作 |
| 168 | +JQuery | JQueryWeb |
| 169 | +---|--- |
| 170 | +addClass | addClass |
| 171 | +removeClass | removeClass |
| 172 | +attr | attr |
| 173 | + |
| 174 | +### 默认使用 |
| 175 | +**如果您使用和JQuery一样的,例如css会自动默认选择第一个出现class或者tag名称的标签,当然,您也可以自定义下标,利用xxxWithIndex来指明标签的出现的位置,第一个参数填入位置。** |
| 176 | + |
| 177 | +### 高级宏使用函数 |
| 178 | +**JQueryWeb-Objective-C:** |
| 179 | + |
| 180 | +如果您不想使用JQueryWeb封装的方法来使用,也可以通过提供的宏定义进行快速使用。 |
| 181 | +只需要调用就可以快速使用 |
| 182 | + |
| 183 | +``` |
| 184 | +import "JQueryWebMacroJavaScript.h" |
| 185 | +``` |
| 186 | +**JQueryWeb-Swift:** |
| 187 | +JQueryWeb提供了可以直接使用的JS函数来使用,详细在JQueryWebMacroJavaScript.swift文件中有定义。 |
| 188 | + |
| 189 | +### 安装 |
| 190 | +**直接通过GitHub下载到本地,将JQueryWeb拖到项目中,即可使用。** |
| 191 | + |
| 192 | +### 为这个项目做贡献 |
| 193 | +如果您有功能请求或错误报告,请随时发送 [email protected]上传问题,我们会第一时间为您提供修订和帮助。也非常感谢您的支持。 |
| 194 | + |
| 195 | +### 安全披露 |
| 196 | +如果您认为已通过JQueryWeb找到了安全漏洞和需要修改的漏洞,则应尽快通过电子邮件将其报告至 [email protected]。感谢您的支持。 |
0 commit comments