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 的方式,應該會遇到不少問題!
Android WebView Error – Uncaught TypeError: Cannot call method ‘getItem’ of null at的更多相关文章
- ExtJs 4.2.1 报错:Uncaught TypeError: Cannot call method 'getItems' of null
做项目的时候遇到这个问题,搞了一上午终于解决了,让我们看看是什么问题: buttons: [ { text: '保存', icon: '../../../Images/extjs/disk.png', ...
- JsBridge "Uncaught TypeError: Cannot call method 'callHandler' of undefined", source
h5和原生结合开发app越来越流行.其实就是webview 的js调用native的方法.也就是需要搭建一个桥.这样的桥早就有人搭建好了,那就是jsbridge. git地址: https://git ...
- “Uncaught TypeError: Cannot call method 'createChild' of undefined" 问题的解决
Uncaught TypeError: Cannot call method 'createChild' of undefined 我在使用Ext 4.1.1做grid.Panel,然后chrome爆 ...
- Uncaught TypeError: Cannot read property 'insertAdjacentHTML' of null
在开发Ext 项目中如果遇到 Uncaught TypeError: Cannot read property 'insertAdjacentHTML' of null 这个错误,检查下renderT ...
- Uncaught TypeError: Cannot set property 'innerHTML' of null
学习Chrome插件时,要在弹出页面中显示当前时间,结果怎样也显示不出来 看了 http://www.cnblogs.com/mfryf/p/3701801.html 这篇文章后感悟颇深 通过调试发现 ...
- Three.js three.js Uncaught TypeError: Cannot read property 'getExtension' of null
在调试Three.js执行加载幕布的时候,突然爆出这个错误three.js Uncaught TypeError: Cannot read property 'getExtension' of nul ...
- JavaScript Uncaught TypeError: Cannot read property 'value' of null
用 JavaScript 操作 DOM 时出现如下错误: Uncaught TypeError: Cannot set property 'value' of null Uncaught TypeEr ...
- 前台报错:Uncaught TypeError: Cannot read property '0' of null
错误现象: var div1=mycss[0].style.backgroundColor; //这一行提示360和chrome提示:Uncaught TypeError: Cannot read ...
- 解决sweetalert 无故报错 elem.className.replace Uncaught TypeError: Cannot read property 'className' of null
今天碰到这么一个问题,在使用sweetalert的时候时有时无会报错 elem.className.replace Uncaught TypeError: Cannot read property ' ...
随机推荐
- centos lnmp 安装笔记
[root@host]# chkconfig nginx on [root@host]# service nginx start [root@host]# service nginx stop [ro ...
- 装了SVN,你的关联图标变了没有?
装了SVN,你的关联图标变了没有? 开始合作之后,装上了SVN,非常高效,我在VS写了一部分的代码,上传之后,别人通过下载或是更新,就更新到了合作同伴的VS里,相当于大家在一个VS里写代码.和保强他们 ...
- 入门1:PHP的优点
一.语法简单 二.学习成本低 (因为语法简单 所以学习成本低) 三.开发效率高 (PHP运行流程很简单,语法也很简单,必然开发效率就高) 四.跨平台 (我们只需要写一份PHP的程序,就可以非常方便的把 ...
- Ubuntu14.04 安装QQ(国际版)
1.在/etc/apt/source.list文件中添加: deb http://packages.linuxdeepin.com/deepin trusty main non-free univer ...
- 下载jdk-api 1.7文档
第一步:查看你所下载的JDK版本.在cmd中输入“java -version”即可. 第二步:输入网址:http://www.oracle.com/technetwork/index.html 第三步 ...
- iscc2016-好长的字符串
Vm0wd2QyVkhVWGhVYmxKV1YwZDRXRmxVUm5kVlJscHpXa2M1VjFKdGVGWlZNbmhQWVd4YWMxZHViRmROYWxaeVdWZDRZV014WkhG ...
- C++例题1:输出可打印字符
#include<iostream>#include<stdlib.h>#include<cctype>int main(){ int i;char a=0; fo ...
- 转:gpio_request
今天再次学习SD卡驱动,遇到pgio_request这个函数,始终不知道其什么意思,看了几遍源代码才有了点感觉.现将其关键部分再此说明一下,以备自己以后复习,或是路客参考. 一般gpio_reques ...
- LA 3521 Joseph's Problem
题意:给你正整数n和k,然后计算从i到n k%i的和: 思路:如果n小于1000000,直接暴力计算,然后大于1000000的情况,然后在讨论n和k的大小,根据k%i的情况,你会发现规律,是多个等差数 ...
- Ubiquitous Religions(并查集)
Description There are so many different religions in the world today that it is difficult to keep tr ...