Android WebView Error – Uncaught TypeError: Cannot call method ‘getItem’ of null at
本质原因是js 没有判断dom 是否加载完毕
其实就是在dom 加载完毕之后处理事件
wv.getSettings().setDomStorageEnabled(
true
);
转自 蛙齋 http://wazai.net/2969/android-webview-error-uncaught-typeerror-cannot-call-method-getitem-of-null-at
Android WebView 這個元件,發現整個速度跟瀏覽器完全沒得比,包括内建瀏覽器、Chrome、Firefox、Opera …。每種瀏覽器的速度都比 WebView 快上許多 … 小蛙跟許多人一樣巴不得把 chrome 塞進 app 裡面!網路上有些人推薦 chromeview,不過有一些 bug 以及對於比較低 API 的 app 是沒辦法使用的!這篇記錄小蛙遇到 WebView 在載入網頁的時候遇到 Uncaught TypeError 錯誤的解決方法。
結構越複雜的網頁就越慢 … 但是特別的是奇摩拍賣手機版網頁,竟然也可以慢到如此誇張 … 不怪 WebView,因為就連直接用 Chrome 開啟都要花很長的一段時間,問題出在整個頁面載入完成之後,又做了大量的 DOM 操作,像是動態選單建立,動態元件 … 等等。奇摩拍賣放進了太多功能,造成整個效能低落 …
當時小蛙還異想天開的以為是 WebViewClient.onReceivedError 或是 WebViewClient.onLoadResource 丟出這個令人覺得大心的錯誤,如果直接把網址貼上瀏覽器會發生錯誤,把後面的 :1 刪掉就可以正常讀取該 js,那只要在 WebViewClient.onLoadResource 讀取資源的時候,把 :1 這種造成錯誤的字元過濾掉就好了,把動作加上去之後發現,事情絕對沒有笨蛋想的那麼簡單 … 這個錯誤的拋出跟上面提到那兩個 function 一點關係都沒有 … 錯誤依然存在,跑不出來的功能依然跑不出來!
Google 一下發現有很多人都遇到這個問題,解決的方法很簡單,這個錯誤的引起是因為剛剛一開始有提到該網頁是在 DOM 載入之後才開始對 DOM 元素進行操作,這邊有提到 WebSettings.setDomStorageEnabled(boolean)
1
2
|
public synchronized void setDomStorageEnabled (boolean flag)
Sets whether the DOM storage API is enabled. The default value is false.
|
預設是不做 DOM 儲存的動作,也就是說在整個網頁載入完成之後並不把 DOM tree 儲存起來,所以導致後續對於 DOM 元素的操作,因為找不到這棵 tree 而發生錯誤,只要加上以下這行
1
|
wv.getSettings().setDomStorageEnabled( true );
|
問題就解決了!這次使用 WebView 來做一些東西加上整個切換成 fragment 的方式,應該會遇到不少問題!
转载于:https://www.cnblogs.com/kukum/p/android_weview.html
Android WebView Error – Uncaught TypeError: Cannot call method ‘getItem’ of null at相关推荐
- WebView显示网页出现Uncaught TypeError: Cannot call method 'getItem' of null异常
查看全文 http://www.taodudu.cc/news/show-4476866.html 相关文章: 微信开发隐藏网页右上角按钮与底部导航栏 dialog出现Uncaught RangeEr ...
- JsBridge Uncaught TypeError: Cannot call method 'callHandler' of undefined, source
h5和原生结合开发app越来越流行.其实就是webview 的js调用native的方法.也就是需要搭建一个桥.这样的桥早就有人搭建好了,那就是jsbridge. git地址: https://git ...
- 对于Uncaught TypeError: Cannot set property ‘innerHTML‘ of null 的理解
在w3school自学JavaScript时,发现一个很有意思的问题.首先看下面代码: <!DOCTYPE html> <html> <body><h2> ...
- Uncaught TypeError: Cannot read property 'setAttribute' of null
Uncaught TypeError: Cannot read property 'setAttribute' of null 其实就是js中空指针异常 h5splayer.js:1 Uncaught ...
- Uncaught TypeError: Cannot read property 'value'' of null
在用JS实现ajax做网页聊天室的时候,报了一个错误: Uncaught TypeError: Cannot read property 'value'' of null at chat (Gluti ...
- Uncaught TypeError: Cannot read property 'length' of null错误怎么处理?
Uncaught TypeError: Cannot read property 'length' of null 错误怎么处理? 1.可能是返回的datagrid数据格式有问题,比如{"t ...
- (原创)JS点击事件——Uncaught TypeError: Cannot set property 'onclick' of null
html部分代码: JS部分代码: 需要实现的效果:点击图片,来回相互切换. 我开始的错误做法:代码如上图所示(逻辑上看起来是没有错误的) 尝试过程:把JS代码放在</body>闭合标签之 ...
- JS Uncaught TypeError: Cannot read property ‘indexOf‘ of null问题解决
问题描述: Uncaught TypeError: Cannot read property 'indexOf' of null 问题分析: 使用indexOf()的变量为null. 问题解决: 1. ...
- 数组push方法使用 Uncaught TypeError: Cannot read property ‘push‘ of null
1.向空数组内push一个数组,成为二维数组报错:Uncaught TypeError: Cannot read property 'push' of null 因为非数组是无法进行push操作的, ...
最新文章
- 普通人有必要学python-风变编程:普通人学Python有意义吗?
- 为 Python Web App 编写 Dockerfiles
- Java 文件操作 File 及 RandomAccessFile
- AngularJS 1.3 支持使用 $digest() 循环实现延迟
- 前端学习(2310):数据请求和json-server
- SQL SERVER 数据导出JSON
- 【jQuery插件】textSlider 文字滚动插件
- Vs2010创建WebService
- [转载] 七龙珠第一部——第019话 天下第一武道会开始
- spring Boot 学习(一、Spring Boot与缓存)
- 【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】
- 【题解】SCOI-2010-连续攻击游戏
- 因子分析的实用介绍:探索性因子分析
- Centos 搭建DHCP服务,新建独立网卡完成DHCP实验
- 打假!伪数据分析思维大曝光
- 【错误记录】使用./make.sh ./make.sh install命令安装FastDFS时出错
- poj1837 balance
- 胡塞尔与海德格尔与维特根斯坦
- openwrt系统下修改网关_OpenWRT路由配置技巧
- CSS margin 重叠(margin collapse)
热门文章
- flex 学习笔记 皮肤(一)
- 2011.11.2 try
- 我的网页设计(腾讯网页面制作编写)
- 被尘封的故事鸿蒙轩,被尘封的故事全任务通关人物存档
- qcustomplot删除一条曲线_被“谭卓”旗袍造型给惊艳,波波头搭配一条酒红色旗袍,华丽高贵...
- 链接oracle 灾难性故障,打开计划任务的时候出现灾难性故障.
- Python机器学习:PCA与梯度上升002使用梯度上升法求解PCA问题
- SegNet网络结构
- dueros模拟测试没有请求后台_DuerOS开放平台
- visio中公式太小_串并联管道中调节阀的工作流量特性分析