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