当从tomcat提供页面时,Javascript没有运行setInterval - 从桌面

时间:2017-08-15 13:48:14

标签: javascript jsp tomcat

我一直遇到一些奇怪的问题,javascript在我的本地开发tomcat服务器提供的jsp页面中运行不正常。这很奇怪,因为如果我将相同的源粘贴到文本文件中,另存为jsp,并从桌面打开它可以很好地工作。

我已将所有内容切换回以下代码:

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">

            var intervalId = setInterval(function(){
                console.log('interval running...');
                document.getElementById('interval-status').textContent = ('Interval Running...');
            }, 1000);

            console.log('Interval Created: ' + intervalId);
            document.getElementById('interval-status').textContent = ('Interval Created: ' + intervalId);

        </script>

        <span id='interval-status'></span>
    </body>
</html>

以上粘贴到桌面上的jsp文件中并使用浏览器打开,此页面显示“Interval Running ...”,控制台显示相同的内容。一切都好!

当这个页面从tomcat(作为jsp文件)提供时,我得到TypeError: Document.getElementById(...) is null。好的,所以我将脚本移动到跨度下方,页面加载成功。但是它只显示“Interval Created:2”,控制台显示相同的内容。该间隔实际上并不执行其回调。

所以,问题:

1)为什么脚本在从tomcat提供时必须低于跨度,而不是我的桌面?

2)为什么通过jsp / tomcat服务时间隔不运行?这可能与问题1有关吗?

编辑:通过Edge和Chrome加载时,它似乎正常工作。不是Firefox(54.0.1 32位)。必须与浏览器相关......

0 个答案:

没有答案