我一直在尝试使用PHP在重新加载图像脚本中输出一些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中响应整个脚本,认为它解释的顺序可能是一个问题,但没有运气。我也想知道它是否与使用end- line函数有关。
任何想法?谢谢。
您的if
条件:
if (document.getElementByID) {
总是假的,因为document.getElementByID
是undefined
。JS是区分大小写的;将末尾的D
改为小写的d
:
if (document.getElementById) {
或者完全删除if
测试,因为所有浏览器都支持document.getElementById
,所以不需要测试它。
您还需要对if
内的行进行相同的更改。
(最后,脚本元素需要包含在页面上它试图操作的元素之后的某个地方——就在结束的</body>
标记之前,这是放置脚本元素的常见位置。)