6

私はasp.netでWebアプリケーションを開発しました。このプロジェクトには、ユーザーが画像形式(jpeg、jpg、bmpなど)のファイルを選択する必要があるページがあり、ページで画像をプレビューしたいのですが、しませんファイルをサーバーに投稿したくないクライアントで処理したいファイル API を介して Java スクリプト関数を使用して実行しましたが、IE9 でのみ機能しますが、ほとんどの利用者は IE8 を使用しています。理由は、IE8 がファイル API をサポートしていないためです。 IE8 のアップグレードまたはコード ビハインドのいくつかのパッチを作成する方法はありますか?つまり、ブラウザが IE であるかどうかを確認し、IE8 を IE9 に自動的にアップグレードする関数を呼び出してファイル API をサポートしていないことを意味します。

ユーザーにメッセージでそれを行うように依頼したくない プログラムで行いたい!!
ファイル API に必要な特別なパッチをインストールすることができたとしても、顧客はそれが私のアプリケーションのバグであり、コンピューターの知識が不足していると考えていました。
Async File Upload Ajax Controlも使用しますが、ajaxソリューションとHTTPハンドラーを使用してファイルをサーバーに投稿しますが、Javaスクリプトはすべてクライアントブラウザーで行います!!!

次のスクリプトは、ブラウザが API をサポートしているかどうかをチェックします

<script>
if (window.File && window.FileReader && window.FileList && window.Blob) 
  document.write("<b>File API supported.</b>");
else
  document.write('<i>File API not supported by this browser.</i>');
</script>   

次のスクリプトは、画像の読み取りと読み込みを行います

function readfile(e1)
{
  var filename = e1.target.files[0]; 
  var fr = new FileReader();
   fr.onload = readerHandler;  
  fr.readAsText(filename); 
} 

HTML コード:

<input type="file" id="getimage">

<fieldset><legend>Your image here</legend>
    <div  id="imgstore"></div>
</fieldset> 

JavaScript コード:

<script>
function imageHandler(e2) 
{ 
  var store = document.getElementById('imgstore');
  store.innerHTML='<img src="' + e2.target.result +'">';
}

function loadimage(e1)
{
  var filename = e1.target.files[0]; 
  var fr = new FileReader();
  fr.onload = imageHandler;  
  fr.readAsDataURL(filename); 
}

window.onload=function()
{
  var x = document.getElementById("filebrowsed");
  x.addEventListener('change', readfile, false);
  var y = document.getElementById("getimage");
  y.addEventListener('change', loadimage, false);
}
</script>
4

3 に答える 3

10

IE8 でファイル API のサポートを追加するために特別なものをインストールすることはできません。できることは、ネイティブでサポートしていないブラウザーでこの機能を実装するために、ポリフィルを使用することです。このHTML5 クロス ブラウザー ポリフィルのリストを見てください(ファイル API / ドラッグ アンド ドロップセクションで適切なものを見つける必要があります)。

于 2012-08-27T10:33:55.420 に答える
2

いくつかの調査の後、IE8 でファイル API を有効にする方法はありませんが、それをあなたと共有したいことがあります.....
直接ではありませんが、HTML 5 は IE8 でサポートされていません。Canvas 用のアドオンがあり、HTML 5 を 9 より古い IE に追加するプラグインである Google Chrome Frame もあり
ます。
IE の速度が 10 倍になり、使い方もとても簡単で、メンバー全員に説明します...
Google Chrome Frame

Microsoft のブラウザ、完全な HTML 5 サポート、および Chrome の JavaScript コンパイラに追加する Internet Explorer 用のプラグインです。安定版は 2010 年 9 月 22 日にリリースされ、多くのサイトのページにコードが追加されました。

このプラグインは、Internet Explorer 6、7 以降のバージョンで動作します。Google は、Web の進化を妨げている障壁を打破したいと考えています。最も一般的なブラウザであり、新しい標準との互換性の欠如です。

認識されると、Internet Explorer は Chrome や Safari のレンダリング エンジンである WebKit の下で実行され、IE インタープリターの代わりに超高速の JavaScript コンパイラーが使用されます。

このプラグインの利点は、Web アプリケーションの互換性に優れており、Webkit に統合された WebGL でさらに便利になります。これにより、ブラウザー上で 3D のアプリケーションを使用できるようになります。非常に異なる Web です! WebGL は、バージョン 3.7 以降の Firefox でもサポートされています。

2011 年 5 月以降、プラグインは管理者権限なしでインストールできるようになったため、サーバーに組み込まれている古いバージョンの IE では更新できません。

Web ページのコード内の タグは、ユーザーにプラグインのダウンロードを促すメッセージを表示します。インストールすると、IE は Chrome として実行され、HTML 5 をサポートします。

フレームの特長

オフラインモード。と タグ。Microsoft は、IE にもそれらを実装する予定です。キャンバス。WebGL。CSS 3. JavaScript コンパイラ。Acid 3 レベルでの互換性。ビデオをご覧ください。

マイクロソフトからの反応

Microsoft は、HTML 5 を促進して独自のソリューションである Silverlight に損害を与えるこのイニシアチブをあまり評価していないと予想していました。同社は、セキュリティの問題を強調しています。

プラグイン全般、特に Google Chrome にセキュリティ上の問題があることを考えると、プラグインとして実行されている Google Chrome Frame は、マルウェアや悪意のあるスクリプトの攻撃範囲を 2 倍にしています。

**

クロームフレーム。自動インストール。-> http://www.google.com/chromeframe/?quickenable=true
Google Chrome フレーム コード。-> https://developers.google.com/chrome/chrome-frame/
Chrome Frame: デベロッパー ガイド。-> http://www.chromium.org/developers/how-tos/chrome-frame-getting-started

**

于 2012-09-05T20:41:15.077 に答える