2017-04-09 4 views
2

私はVisual Studio + Cordova + AVD + jQueryMobileを使用しています。設定イメージsrcはJQuery Mobileで動作しません

コードバ - プラグインカメラとコードバ - プラグインファイルを使用して画像を取得します。私もresolveLocalFileSystemURL機能を使用して、より相対パスを取得することができています

file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg 

:それはのようなパスを返します

/1491727086753.jpg 

私は既存のイメージタグのsrcを設定しようとするたびに:

var elem = document.getElementById('source-preview'); 
 
elem.src = fullCameraPath; // file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg 
 
// or 
 
elem.src = fileEntry.fullPath; ///1491727086753.jpg 
 
// or 
 
$('#source-preview').attr('src', ...);
<img id="source-preview" style="width: 100%;" />

上記のいずれの方法も失敗しますが、HTML要素は変更されず、イメージは表示されません。 .srcを再度呼び出すと、そこにプッシュされたパスが実際に表示されます。 .attr('src', ...)だけが十分に親切であると言うことができます: Failed to load resource: net::ERR_FILE_NOT_FOUNDこれは問題があることを示唆しています。

しかし、私は手動にデバッガでHTMLを編集する場合:

<img id="source-preview" style="width: 100%;" src="file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg" /> 

画像が正しく表示されます。しかし、コルドバ・プラグイン・ファイルが提供する短いパスが動作しません使用して:

<img id="source-preview" style="width: 100%;" src="file:///1491727086753.jpg" /> 

これは、画像が存在していることを教えているようだが、jQueryのモバイルは安全」のいくつかの並べ替えとして拒否し、何らかの理由(のためでありますチェック ")を押してロードします。

ご協力いただければ幸いです。

+0

さらにマインドを捨てて、JS編集が画像タグ上にレンダリングされていないことをテストします。同じコードで '.append()'を実行すると、作業イメージも表示されます。 jQueryMobileにいくつかの不具合があるようですが、これについて私が見つけた記事はありませんでした。 – Origin

答えて

0

私の場合、問題はマークアップでした。 <form>タグ内の<button>にコールバック関数を関連付けました。どうやら、jQuery Mobileのデフォルトの動作は、ページを更新することです。私は、ボタンを押す前にタグを変更し、それが戻ってきたことを見たまで、これに気付かなかった。したがって、ボタンはフォームにあり、別のページを指していないので、ボタンは何もしないように見える円形のループに過ぎません。

ボタンをフォームの外に移動すると、すべてが正常に動作するようになりました。

関連する問題