在android phonegap应用程序上修改html内容

时间:2014-02-17 12:01:34

标签: javascript android cordova

我有以下代码从设备中获取所有联系人,并显示 他们在一张桌子里。

function backupAllTheContacts() {
var htmltd ;
var filter = ["displayName", "phoneNumbers", "emails"] ;  // Fields
navigator.contacts.find(filter, function(contacts) {
    //contactsList = JSON.stringify(contacts) ;
    alert('found ' + contacts.length + ' contacts') ;
    for (var i=0; i<contacts.length; i++) {
        htmltd += '<tr><td>' + contacts[i].displayName + '</td><td>' + contacts[i].phoneNumbers[0].value + '</td><td>' + contacts[i].emails[0].value + '</td></tr>' ;
    }
    if(htmltd == ''){
        alert('array population empty') ;
    }
    else{
        document.getElementById("tablebody").innerHTML = htmltd  ;
    }
}, onError, {"multiple": true});    

function onError(contactError){
   alert("Error = " + contactError.code);
}

}

注意:在页面完全加载后单击按钮时调用此函数

cordorva:cordova-3.1.0

Phonegap:phonegap-2.2.0

这在虚拟仿真器上工作得很好,但在真实设备上测试时(在两个Android设备上测试) 它获取联系人但是&#39; tablebody&#39;的html内容。没有修改 我试过了

$('#tablebody').html(htmltd)

但仍然没有工作。 并且控制台和logcat中都没有出现错误。

1 个答案:

答案 0 :(得分:0)

您在for

中进行了很长时间的连接
htmltd += '<tr><td>' + contacts[i].displayName + '</td><td>' + contacts[i].phoneNumbers[0].value + '</td><td>' + contacts[i].emails[0].value + '</td></tr>' ;

可能某些字段在真实设备上不存在。考虑emailsphoneNumbers。 假设存在零索引值,您将静态访问它们。

Javascript可能会抛出一个未定义的错误。

将这一行拆分为分段。