2011-11-08 2 views
-2

これが私のHTMLです:getAsDataURLは()、クロムでは動作せず、すなわち

<input type="file" id="browse" name="browse" size="" placeholder="Photo" checked="checked" class="upload"/> 
<input type="button" onclick="javascript:onbrowse()" class="unknown" value=""/> 

そして、私はJavaScript:

$(function() { 
     $(".upload").change(function() { 
      var fileObj = $(this).get(0); 
      var fileName; 
      if (fileObj.files) { 
       fileName = fileObj.files.item(0).getAsDataURL() 
      } else { 
       fileName = fileObj.value; 
      } 
      $(".unknown").css("background-size", "100px 100px"); 
      $(".unknown").css("background-image", "url(" + fileName + ")"); 
     }); 
    }); 

    function onbrowse() { 
     document.getElementById('browse').click(); 
    } 

私は2つの問題を抱えて:

  1. onclickのをChromeでは動作しません。

  2. getAsDataURL()はChromeとIEでは動作しません

私を助けてくれますか? jQueryの

jQuery('input[type="button"].unknown').click (onbrowse); 

答えて

5

IEと

+0

http://jsfiddle.net/fKQDL/ iは、コードをコピーしますが、それは動作しませんし、それが仕事 –

+0

@Aram Mkrtchyanをdosn'tなぜ私はunderstednません:フィドルが私のためにChromeで正常に動作します。それはうまくいくはずです。 – pimvdb

+0

ローカルでスクリプトを実行すると問題になることはありますか? –

1

バインドボタンの動作は、まだファイルのAPIをサポートしていません。とにかく、ファイルを読むにはFileReaderを使用する必要があります。また、ファイルはファイル名ではありません(変数名はあいまいです)。

ファイルへのクリック委任はうまくいきます。

file = fileObj.files[0]; 
var fr = new FileReader; 
fr.onloadend = changeimg; 
fr.readAsDataURL(file); 
関連する問題