2012-01-18 19 views
0
/******* 
    works when "Take Photo" button clicked 
    ********/ 
function takePicture() { 
    var result = blackberry.media.camera.takePicture(successCB); 
} 


/******* 
post processing of photo click event 
********/ 
function successCB(filePath) { 
    try{ 
    blackberry.media.camera.close(); 
    var imagePath = "file://" + filePath; 
    document.getElementById('images').setAttribute('src', imagePath.toString()); 
    document.getElementById("photoDetails").innerHTML = imagePath; 
    } 
    catch(e) { 
     document.getElementById("photoDetails").innerHTML = e.ToString(); 
    } 
} 
//ConfigFile includes the following, <access subdomains="false" uri="file:///store/home/user/camera/"> 

     //html portion of viewing photo 
     <ul> 
      <li id="Li1"> 
       <img id="Img1" alt="image" src="file:///store/home/user/camera/IMG-20120118-00001.jpg" /></li> 
      <li id="photoDetails"> 
       <img id="images" alt="image" src="kkkoj" /></li> 
     </ul> 

imagePath変数が正常にプリントされます=> "file:///store/home/user/camera/IMG-20120118-00001.jpg"。写真は表示されません。blackberry webworks:写真を撮った後にキャプチャされた画像を表示

私が書いたコードの問題は何か分かりません。画像のパスがきれいになった。

奇妙なことに、imagePathをイメージのsrcとしてハードコードすると、イメージが表示されます。しかし、私はsuccessCB()でjavascriptを使用して設定すると、動作しません。私はfirefoxで私のjavascriptコードの機能をテストしました。それは基本的なHTMLで動作します。私はos 6バンドル2921とブラックベリー9700を使用しています。私はすぐに助けが必要です。私はこれで一日中ついています。

答えて

1

あなたはdocument.getElementById("photoDetails").innerHTMLの使用が問題です。 の開始タグと終了タグの間のすべてが.innerHTMLで置き換えられます。 imagesphotoDetailsにあるので、imagePathだけで消去されています。

imagePathを表示する場合は、<div>または<span>を追加し、それらをパスで更新してみてください。

また、外部ファイルへのアクセスにのみ使用されるため、構成ファイルに<access>要素が必要ではないと思います。

+0

私を修正するためのcore.Bに感謝します。私は知っていたが、それは私の心には来なかった。良い一日を –

関連する問題