if (x < y) は機能しますが、if(x<=y) は Javascript では機能しません。前者の場合は if ステートメントが評価され、後者の場合は if ステートメントは無視されます。
コードは次のとおりです。
var totalFrames = 12;
ここで、showvalue 関数は HTML から値を受け取ります。
<input type="range" min="2" max="36" step="2" value="2" name="totalFrames"
onChange="showValue(this.value);" width: 80%" value="2"/>
<p>Total Frames: <span id="totalFrames">2</span>
function showValue(newValue) {
document.getElementById("totalFrames").innerHTML = parseFloat(newValue);
totalFrames = parseInt(newValue);
var winkel = 360.0/totalFrames;
document.getElementById("angle").innerHTML = winkel.toFixed(1);
var maxFrame = document.getElementsByName("actFrame")[0];
maxFrame.max = parseInt(newValue);
}
function motorCommunication() {
actFrame = document.getElementById("actFrame").value;
actualFrame = parseInt(document.getElementById("actFrame").value);
document.getElementById("range").innerHTML = actFrame;
/* この行は機能します -- if ステートメントは無視されません*/
if ( Number(actualFrame) < Number(totalFrames) ) {
/* この行は機能しません -- if ステートメントは無視されます*/
if ( Number(actualFrame) <= Number(totalFrames) ) {
var url = "/cgi-bin/bn_events.py?actualFrame=" + escape(actualFrame)
+ "&totalFrames=" + escape(totalFrames)
+ "&seconds=" + escape(seconds);
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
actualFrame++;
}
else {
document.getElementById("returnedStatus").value = "DONE.";
}
}
function updatePage() {
if (request.readyState == 4) {
if (request.status == 200) {
/* Get the response from the server */
var motorResponse = request.responseText;
motorData = new Array();
//motorData = request.responseText;
motorData = motorResponse.substring(0,motorResponse.length-1).split(",");
/* Update the HTML web form */
document.getElementById("returnedFrame").value = motorData[0];
document.getElementById("returnedTotalFrames").value = motorData[1]
document.getElementById("returnedStatus").value = motorData[2];
document.getElementById("actFrame").value = parseInt(actualFrame);
document.getElementById("actualStatus").value = parseInt(actualFrame);
setTimeout(motorCommunication(),300);
} else {
alert("Error! Request status is " + request.status);
}
}
}
私が見つけたのは、
if ( Number(actualFrame) <= 12 ) {
それは完全に動作します....
今は無力です...コメントに感謝します。