javascript
iOS开发实战小知识点(五)——获取JS meta异常
####在開發(fā)中遇見一個(gè)問題:
獲取H5某個(gè)meta的值,在iOS 10(包括)系統(tǒng)以上可以正常獲取,但是在iOS 10系統(tǒng)以下獲取meta值返回為nil。
#####代碼如下:
NSString *js = [NSString stringWithFormat:@"document.getElementsByTagName('meta')['%@']['content']",metaName]; NSString *meta = [webView stringByEvaluatingJavaScriptFromString:js]; 復(fù)制代碼這時(shí)候返回值在iOS 10系統(tǒng)以上正常,iOS 10系統(tǒng)以下得到neta值為nil。js是可以獲取到的,但是調(diào)用stringByEvaluatingJavaScriptFromString方法后返回值為nil。
上網(wǎng)查了很多問題,查找的都是stringByEvaluatingJavaScriptFromString在iOS 10一下系統(tǒng)為什么會(huì)返回nil。網(wǎng)上說要用JSContext,或者用WKWebVIew獲取JS meta的。但是我們項(xiàng)目只用了UIWebVIew。只能試試JSContext,測(cè)試也不行,但是這時(shí)候把獲取JS meta字符串方法換了,竟然可以獲取到了。
document.getElementsByTagName("input"),結(jié)果為獲取所有標(biāo)簽為input的元素。 document.getElementsByName("hobby"),結(jié)果為獲取屬性name="hobby"的元素。
**解決辦法:**更改獲取JS meta的方法:
NSString *js = [NSString stringWithFormat:@"document.getElementsByName(\"%@\")[0].content",metaName]; 復(fù)制代碼在調(diào)用[webView stringByEvaluatingJavaScriptFromString:js]就都能返回正常了。
總結(jié)
以上是生活随笔為你收集整理的iOS开发实战小知识点(五)——获取JS meta异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第 3 章 Systems archit
- 下一篇: [转]COPY OR MOVE FILE