从外部javascript中的数组随机引用不显示onload

时间:2012-07-06 18:37:04

标签: javascript

我是一个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(); }

最后,我在体内替换的div如下......

<div id = "ShowText"></div>
这可能是一个愚蠢的错误,但我现在一直试图追踪它,我错过了一些东西。当我在我的html头中写出quote.js的内容时,它工作正常。有任何想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

如果您可以分享指向该页面的链接,我可以更准确地告诉您问题所在。

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

答案 1 :(得分:0)

在DOM准备好之前,代码可能正在运行

而不是onload使用事件DOMContentLoaded

document.addEventListener('DOMContentLoaded', function () {
   //code here
}, false);