0

我是一个 javascript 初学者,我试图弄清楚为什么这段代码在写在头部时有效,但在从外部文件引用时无效。

在我的 html 文档的开头,我引用了 javascript 文件“quote.js”,如下所示。

<script type="text/javascript" language="JavaScript" src="/js/quote.js"> </script>

quote.js的内容如下

var textarray = [
    "Be Good.",
    "Our future depends powerfully on how well we understand the cosmos.",
    "Bottomless wonders spring from simple rules... repeated without end.",
    "All our science, measured against reality, is primitive and childlike — and yet, it is the most precious thing we have.",
    "To use violence is to already be defeated."
    ];

    function RndText() {
      var rannum= Math.floor(Math.random()*textarray.length);
      document.getElementById('ShowText').innerHTML=textarray[rannum];
    }
    window.onload = function() { RndText(); }

最后,我在body中替换的div如下...

<div id = "ShowText"></div>

这可能是一个愚蠢的错误,但我一直在尝试追踪它一段时间,但我错过了一些东西。当我在我的 html 头中编写 quote.js 的内容时,它工作正常。有任何想法吗?提前致谢。

4

2 回答 2

0

如果代码在头部有效,但在包含时无效,则可能是脚本路径有问题。仔细检查这/js/quote.js是一个合适的位置。它可能需要js/quote.js,你可能有一个错字。在 FireFox 和 Chrome 等浏览器中,如果您查看页面的源代码,您可以单击此类文件的路径,它会加载包含的文件,如果找不到文件,则会显示错误。

如果您可以共享该页面的链接,我可以更确定地告诉您问题出在哪里。

此外,如果您使用 XHTML,则不必使用语言属性,但这不会导致问题。

于 2012-07-06T18:41:59.570 回答
0

也许代码在 DOM 准备好之前就在运行

而不是onload使用事件DOMContentLoaded

document.addEventListener('DOMContentLoaded', function () {
   //code here
}, false);
于 2012-07-06T18:43:32.970 回答