2016-04-01 14 views
-2

パスとプロジェクト名のような変数を含む画像URLを持つ.jsonファイル(下記参照)があります。JSONファイルから動的URLを読み取るにはどうすればよいですか?

ファイルをロードするリクエストもあります。リクエストが成功すると、属性srcとソースパスがイメージに割り当てられます。

$.ajax({ 
    async: false, 
    type: "GET", 
    global: false, 
    dataType: "json", 
    url: resrcPath+"imgRes.json", 
    success: function (data) { 
     var src = data.imgs[0].gatewayImg; 
     $('.gatewayImg').attr('src', src); 
    } 
}); 

問題は、私はこれを行う際に、画像がローカルサーバー上に見つからないということであると私はSRCとしてこのlocalhost:8080/order/resrcPath+_global_PROJECT_NAME+'/images/gateway-'+_global_PROJECT_NAME+'.png'を取得します。

しかし、私はsrcに次のような属性を付けました。$('.gatewayImg').attr('src', resrcPath+_global_PROJECT_NAME+'/images/gateway-'+_global_PROJECT_NAME+'.png');画像が表示され、変数は正しい値に置き換えられます。

JSONが有効かどうかわからないので、属性関数にURLを書き込む代わりにsrcにjson値を割り当てる方法を知る必要があります。

+1

画像内の変数は、ソースに表示されているためにはっきりと置き換えられません。これらの変数を処理するために文字列を置き換えるか、JSONの完全なURLをコンパイルするだけです。 –

+0

これらの変数は、イメージがそれらに応じて変化するようにURLが必要なため、必要です。 – Lotus91

答えて

2

JSONは有効ですが、実行(評価)する必要がある文字列があります。 JSONファイルを100%制御している場合は、resrcPath,_global_PROJECT_NAMEをグローバルと仮定して、文字列を評価することができます。

var resrcPath = "/"; 
var _global_PROJECT_NAME = "global" 
eval("resrcPath+_global_PROJECT_NAME+'/images/gateway-'+_global_PROJECT_NAME+'.png'") 
    === "/global/images/gateway-global.png" 


    $.ajax({ 
    async: false, 
    type: "GET", 
    global: false, 
    dataType: "json", 
    url: resrcPath+"imgRes.json", 
    success: function (data) { 
     var src = data.imgs[0].gatewayImg; 
     $('.gatewayImg').attr('src', eval(src)); 
    } 
}); 

最善の解決策は、あなたのプログラムでは、クライアントと開いた穴に再びそれを評価する必要はありませんので、サーバー上の文字列を処理することです。

関連する問題