2

Android の phonegap から連絡先データを取得しようとしています。ここでは、連絡先の画像を取得しようとしており、実際の連絡先の写真が存在しない場合はデフォルトの画像に置き換えようとしています。

phonegap で写真にアクセスしようとすると、写真が存在しなくても URL が返されます。ここでオブジェクトを作成しImage 、画像が存在しない場合に phonegap から取得した写真の URL を割り当てようとすると、Imageオブジェクトはonerror例外を発生させ、その中でそのsrc属性をデフォルトの画像に変更します。

しかし、問題はonerror関数の起動が遅いことです。つまり、データが読み込まれた後、src属性が変更されません。誰でもどうやって管理すればよいか教えてもらえますかonerror

   if(contacts[i].photos){  
                        for(k =0 ;k < contacts[i].photos.length;k++){



                            var imgVal = new Image();
                            imgVal.onerror = function(){


                          this.src= 'resources/images/default_usr.png';
                          this.error = null;

                                contactData.setContactImage(this.outerHTML);
                                console.log("2");
                            }
                            imgVal.width="45";
                            imgVal.height="45";
                            imgVal.src = contacts[i].photos[k].value;

                            contactData.setContactImage(imgVal.src);


                            console.log("1");       

                        }//end for contact photo
                    }// end if contact photo
4

2 に答える 2

0

連絡先の写真であるデフォルトの背景画像を指定します。写真をロードするよりも、実際の写真が存在する場合はロードします。

HTMLコードは次のとおりです。

<img src="Path/to/image" id="img"/>

css は次のようになります。

#img{background: url(path/to/default/image) no-repeat scroll 0 0 transparent; backgorund-size:100% 100%; height:45px; width:45px; display:block;}
于 2013-09-05T10:05:33.767 に答える