私はリロードイメージスクリプトでJavaScriptを出力するためにPHPを使用しようとしていますが、動作させることはできません。JavaScript echo'ing JavaScriptが動作しない
元のコードは次のとおりです。
<script type="text/javascript">
function reloadImage() {
var myDate = new Date();
<?php
$len = count($_POST['custom_wall']);
for ($x = 0; $x < $len; $x++) {
$imgNum = $x + 1;
$jstxt1 = 'img' . $imgNum . '.src = \'http://' . $resultExplode[0] . '/jpeg?t=\' + myDate.getTIme();' . PHP_EOL;
echo $jstxt1;
}
echo '}' . PHP_EOL;
echo 'if (document.getElementByID) {' . PHP_EOL;
for ($y = 0; $y < $len; $y++) {
$imgNum2 = $y + 1;
$jstxt2 = 'var img' . $imgNum2 . ' = document.getElementByID(\'Cam' . $imgNum2 . '\');' . PHP_EOL;
echo $jstxt2;
}
?>
window.setInterval('reloadImage()', 1000);
}
</script>
私はページを実行すると、それは(下記参照)正しい出力をレンダリングしますが、画像を再ロードしません。
<script type="text/javascript">
function reloadImage() {
var myDate = new Date();
img1.src = 'http://172.16.140.56/jpeg?t=' + myDate.getTIme();
img2.src = 'http://172.16.140.56/jpeg?t=' + myDate.getTIme();
img3.src = 'http://172.16.140.56/jpeg?t=' + myDate.getTIme();
}
if (document.getElementByID) {
var img1 = document.getElementByID('Cam1');
var img2 = document.getElementByID('Cam2');
var img3 = document.getElementByID('Cam3');
window.setInterval('reloadImage()' , 1000);
}
</script>
しかし、私がPHPを使用せず、出力されたとおりに正確にJSを挿入すれば、スクリプトは正しく動作します。
私は、PHPでスクリプト全体をエコーしてみましたが、おそらくそれが解釈していた順序が問題だったかもしれないと思っていましたが、運がありません。私はまた、行末機能を使用する必要があるのかどうか疑問に思いました。
アイデア?ありがとう。
あなたがしようとしていますjsを関数にロードし、bodyタグで 'onload'を呼び出しますか? – harryparkdotio
配列を考えてみましょう – user2182349