PHP返回'JavaScript将不起作用


PHP echo'ing JavaScript will not work

我一直在尝试使用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.getElementByIDundefined。JS是区分大小写的;将末尾的D改为小写的d:

if (document.getElementById) {

或者完全删除if测试,因为所有浏览器都支持document.getElementById,所以不需要测试它。

您还需要对if内的行进行相同的更改。

(最后,脚本元素需要包含在页面上它试图操作的元素之后的某个地方——就在结束的</body>标记之前,这是放置脚本元素的常见位置。)