-1

これが私の質問のシナリオです。次のように、jquerydomインジェクションを介したいくつかの画像を表示するWebページがあります。

<!-- this is inside an html page -->
<img id="img1" src="#" />
<img id="img2" src="#" />
<img id="img3" src="#" />

これは私が画像をロードするために使用するスクリプトの例です

$("#img1").attr("src", "/img/image1.jpg");
$("#img2").attr("src", "/img/image2.jpg");
$("#img3").attr("src", "/img/image3.jpg");

したがって、画像のフルパスはwww.mywebsite.abc/img/someImage.jpgです。

私がする必要があるのは、画像のソースパスを切り替えて、ページにローカル(クライアント)パス(c:\ something \ imgなど)から画像をロードさせる方法を見つけることです。

imgフォルダーの構造はサーバーとクライアントの両方で同じになるため、基本的にブラウザーはサーバーからクライアントに「切り替える」だけで、サーバーのフォルダーではなくクライアントのフォルダーから画像を取得する必要があると思います。彼はそれらを必要としています。

あなたはそのようなことをすることが可能だと思いますか?

提案/回答を事前に感謝します。さらに明確にする必要がある場合は、質問してください。

よろしくお願いいたします。

4

3 に答える 3

2

通常のWebページ/アプリケーションではこれは必要ありません。ネットワークトラフィックを節約したい場合は、適切なキャッシュヘッダーを使用してサーバーからファイルを提供できます。次に、最初のリクエストの後、クライアントのブラウザはキャッシュ(ファイルシステム)からファイルを取得します。Webサーバーに迷惑をかけることはありません。

HTTPキャッシングの包括的なチュートリアルについては、http://www.mnot.net/cache_docs/を参照してください

あなたが提案していることをすることは一種のあいまいであり、ブラウザはおそらくそれをブロックします。彼らが知らなかったとしても、あなたはクライアントが持っているかもしれないファイルシステムを決して知りません。常にクライアントに依存しない方法でWebページ/アプリケーションを開発してください。

この後、何らかの理由でそれを実行したい場合は、ここでの他の回答が「正しい」方向を示している可能性があります。

編集:

別の可能性があります。HTML5には、オフラインWebアプリケーションの可能性があります。基本的に、オフラインで利用できるようにするリソースのリスト(マニフェスト)を提供します。HTML5オフライン対応のブラウザは、ユーザーがその特定のファイルをまだ必要としていない場合でも、このリストを解析し、そこにリストされているファイルをダウンロードしてキャッシュします(ユーザーはWebサイトの隅々までアクセスする必要はありません)。ブラウザは、オンライン時にこれらのファイルのコピーを自動的に最新の状態に保ちます。

これがあなたが探しているものかもしれないと思います。

互換性のあるブラウザの詳細とリストについては、http://diveintohtml5.info/offline.htmlを参照してください。

于 2013-01-23T11:50:27.960 に答える
2

一般的に、いいえ、それはできません。ブラウザのセキュリティ機能は、ページがファイルシステム上のファイルにアクセスすることを許可しません。ただし、クライアントマシンを制御する限られた範囲でこれを使用している場合は、コマンドラインスイッチを使用してそのセキュリティを無効にできる場合があります。

たとえば、Chromeを起動してから実行でき--allow-file-accessます

$("#img3").attr("src", "file://c/something/img/image3.jpg");

ただし、お勧めはしません。もちろん、一般ユーザーはChromeをそのように起動することはありません。

于 2013-01-23T11:39:18.983 に答える
0

なぜあなたがこれをしたいのか私は考えることができませんが、試してみてください

$("#img1").attr("src", "file:///img/image1.jpg");

また

$("#img1").attr("src", "file://img/image1.jpg");

それはうまくいくかもしれません

于 2013-01-23T11:38:56.780 に答える