私はjavascriptをいじっていますが、ここで奇妙な問題に遭遇しました。サーバーサイドではRuby on Railsを使っています。
ダイナミクスにしたいHTML部分は次のとおりです。
<div id="pic">
<img src="https://graph.facebook.com/<%=@id.to_s%>/picture?type=large">
</div>
onreadystatechange
私のAJAXリクエストのイベントが発生したときに呼び出されるコードは次のとおりです。
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(<%=@id.to_s%>);
document.getElementById("pic").innerHTML = "<img src=\"https://graph.facebook.com/<%=@id.to_s%>/picture?type=large\">";
}
基本的に、私のリクエストはサーバー側で処理され、変数の値@id
が変更されます (デバッガーを使用して見られるように、正常に動作します)。したがって、JavaScriptコードが解釈されると、変数の値もクライアント側で私の期待どおりに変更されているはずです...しかし、そうではありませんでした。これは私の問題です。
ここでの私の推測では<%=@id.to_s%>
、関数が呼び出されるたびにではなく、スクリプトがブラウザーに読み込まれると、このコードは評価されると思います。
そのための回避策はありますか?
乾杯