Javascript方法未定义

时间:2010-06-30 12:08:05

标签: javascript methods

当我将第一个脚本块中的代码(没有脚本标记本身)移动到外部javascript文件时,为什么这不起作用。

我们的想法是从主页调用homead.load()并加载homead_build()处理的所有内容;

错误说使用Firefox错误控制台'homead未定义'

<div id="box">
</div>

<script type="text/javascript">
    var homead = {
        box_id: "box",
        width: "150px",
        load: function(){
        homead.homead_build();
        },

        homead_build: function(){
            var div = document.createElement('div');
            div.style.width = homead.width;
            div.style.height = '55px';
            div.style.border = 'solid 2px #000';
            var box = document.getElementById(homead.box_id);
            box.appendChild(div);
        }
    };
</script>

<script language="JavaScript" type="text/javascript">

   homead.load();
</script>

3 个答案:

答案 0 :(得分:2)

在致电homead.load()后,您是否要包含外部脚本文件?确保在使用之前加载它:

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

   homead.load();
</script>

答案 1 :(得分:1)

确保在使用homead之前包含它,并且文件已正确加载。 (例如:在文件中说警告(“im loaded ...”))

您的代码可以简化为btw:

var homead = {
    box_id: "box",
    width: "150px",
    load: function(){
        var div = document.createElement('div');
        div.style.width = homead.width;
        div.style.height = '55px';
        div.style.border = 'solid 2px #000';
        var box = document.getElementById(homead.box_id);
        box.appendChild(div);
    }
};

答案 2 :(得分:0)

是的,它的工作正常。您可能会将错误的src文件路径提供给脚本标记。

我做了以下事情;

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

添加了代码

    <div id="box">
</div>


<script language="JavaScript" type="text/javascript">

   homead.load();
</script>