私は間違いなくまだJavascriptを学んでいるので、これが非常に基本的な質問である場合はご容赦ください。
画像のURLのリストをローテーションしてhrefにしようとしています。URLがWebサービスに渡され、画像の詳細変数が詳細に示されるため、すべてのURLに疑問符が含まれています。ヘッダーでは、php$imgArrを個別のjavascriptImageオブジェクトの.src値に分割しました。この時点まで、すべてが正常に機能しています。
画像のURL例:http://webservices.ashx?size=25
<script type="text/javascript">
<!--
var step = 1;
var timeOut;
function playforward() {
if (!document.images) return
alert(eval("image" + step + ".src"));
document.images.slideleft.src = eval("image" + step + ".src")
if (step < <?php echo count($imgArr); ?> ) step++
else step = 1
timeOut = setTimeout("playforward()", 500)
}
function stopPlay() {
clearTimeout(timeOut);
}
//-->
</script>
上記のコードでは、画像番号を循環するステップ変数を含むベース画像名のアラートがあります。アラートボックスがポップアップすると、画像のURLは正しいですが、アラートボックスを取り出してページを実行すると、画像がエラーになり、疑問符の後のすべてがプロパティに表示されます。
私はevalが優れたソリューションではないことを理解するのに十分知っていますが、より良いソリューションはわかりません。誰か提案がありますか?
編集:
リクエストに応じて、画像変数を作成するために使用しているコードを次に示します。このコードはCodeigniterControllerで呼び出され、ドキュメントヘッダーに渡されます。私はそれが大いに役立つとは思わないが、ここにそれがある:
for($i = 0; $i < count($imgArr); $i++)
{
$urlPieces = explode('?', $imgArr[$i]);
$num = $i+1;
$images .= 'var image'. $num .'=new Image()
imageleft'. $num .'.src="'.$urlPieces[0].'" + "?" + "'.$urlPieces[1].'"; ';
}