を要求するコードは次のとおりJavaScriptは2つを発行することなく、画像のソースを変更する方法HTTPここ
<div id="wrapper">
<img src="lowres/image123.jpg">
</div>
PREMISSES: <img>
要素は独自のシステムのバックエンドによって生成され、元の低解像度画像を使用します。私は純粋なjavascript(jqueryなし)を使って操作することしかできません。
私は変更外部サーバにある高解像度バージョンにデsrc
属性、例えば:src="//cdn.provider.com/highres/image123.png"
(イメージが同じ名前で異なる場所を持っている)する必要があります。
問題:DOMへの<img>
挿入が2(2)HTTPリクエスト、HIGHRES用lowres画像の一方及び他方を発行した後にそれをやって - と私はたくさんのページ上の画像のを持っています!
<img>
イベント「beforeInsertion」やイベントを遮断することにより、例えば、適切src
を変更するにはDOMにちょうどその挿入前に<img>
を操作することが可能である場合FIX ITするために、私は「思っていましたアフターサービス "<div>
のをラッピングします。
乾杯!
UPDATE 1:明確にするために:1)私はバックエンド/サーバー側へのアクセス権がありません。 2)私は低解像度の画像を表示したくない、高解像度だけを表示する。 3)私は事前にファイル名を知らないので、<img>
から取得し、CDNに保存されている高解像度バージョンのパスに追加する必要があります(両方のイメージが同じ名前を持っています)。 4)私はコードを使ってそれを行うことができますが、TWO HTTPリクエストを犠牲にして、これは私が避けたいものであり、何がこの質問を動機づけていますか? ;)
var img = document.getElementById("wrapper").childNodes[0];
img.src = getHighResolutionImagePath(img.src);
ユーザが低又は高解像度の画像を受信した場合の要件はどのようなものを分解する注意しますか!実際の 'img'タグの代わりにCSSメディアクエリと背景イメージを使用できますか? – CodingIntrigue
ページ上のすべての外部リソースを変更するか、それともごくわずかですか。それがすべての場合、 要素https://developer.mozilla.org/fr/docs/Web/HTML/Element/base(ページの
を制御する場合)を使用して何かを行うことができます – Xavier@RGraham: 1.要件はありません。私は古いイメージと廃止予定のイメージを置き換える必要があります。サーバー側でそれを変更するためのバックエンドアクセスはありません。高解像度の新しいバージョンに変更する必要はありません。質問)。 2.私はメディアの問い合わせが役に立たないと思う。 3.コード部分の ''は、ローレストイメージで、バックエンドによって生成され、私はそれを制御できません。しかし、私は背景画像を使って高級版を表示することができます。 – tdelboni