未捕获的类型错误:无法将属性“innerHTML”设置为 null
2014-06-26
809
我正在使用适用于 Android 的 phonegap-1.4.1 制作条形码扫描应用程序。我需要定义一个 n 数组
code[]
来存储所有扫描的条形码文本,并且我需要定义一个变量
k
作为计数器,每次扫描后都会加 1,这样我就可以在
code[k]
中存储详细信息。所以这是我之前的 javascript 文件,我在其中定义了一个数组和一个变量计数器。
localStorage["counter"]=0;
var code = new Array(100);
localStorage.setItem("code", JSON.stringify(code));
这是我的另一个 js 文件,我在其中调用存储的数组并将存储在该数组中的值打印为
“id”
。
myvalue1
是从扫描中获得的条形码文本。
var barcodeVal = localStorage.getItem("myvalue1");
var test2 = localStorage.getItem("code");
code = JSON.parse(test2);
var k = parseInt(localStorage.getItem("counter"));
code[k] = "code[k]";
document.getElementById(code[k]).innerHTML = barcodeVal;
k = k + 1;
localStorage["counter"]=k;
localStorage.setItem("code", JSON.stringify(code));
我一次又一次地调用条形码扫描功能。这就是为什么我要使用数组来存储扫描的条形码的数据。这也是我的扫描 js 文件,它给出了
myvalue1
<script type="text/javascript">
var scanCode = function () {
window.plugins.barcodeScanner.scan(
function (result) {
alert("Scanned Code: " + result.text + ". Format: " + result.format + ". Cancelled: " + result.cancelled);
localStorage.setItem("myvalue1", result.text);
window.location.href = 'page5.html';
}, function (error) {
alert("Scan failed: " + error);
});
}
我收到错误
Uncaught TypeError: Cannot set property 'innerHTML' of null
。我是 phonegap 和编码的新手。有人可以帮我解决这个问题吗?提前谢谢了。
1个回答
您不需要跟踪变量
k
。
您可以使用以下脚本简单地管理所有条形码值。
请检查下面的 jsFiddle...运行两次您就会看到差异。
JSFiddle
<script>
function SaveDataToLocalStorage(barcodeValue)
{
var oldItems = JSON.parse(localStorage.getItem('barcodes')) || [];
var newItem = {
'barcode': barcodeValue
};
oldItems.push(newItem);
localStorage.setItem('barcodes', JSON.stringify(oldItems));
}
SaveDataToLocalStorage("123456879FFGG");
</script>
Butani Vijay
2014-06-27