javascript错误:对象未定义

时间:2010-11-16 18:21:34

标签: javascript

我正在尝试重用我在另一个页面上工作的一些脚本,但是我一直都遇到这个错误。

我有一个名为CalendarPopup.js的.js文件。它与我的HTML链接如下:

<script type="text/javascript" src="/administrator/components/com_arrcard/js/CalendarPopup.js"></script>

这是一个javascript库,显示一个弹出日历,用户可以从单击链接时选择日期。然后将值放入字段中。这是显示字段和链接的代码:

<tr id="birthDate">
<td align="left" valign="top">
    <script type="text/javascript">
    var calStart = new CalendarPopup("calendar");
    calStart.showNavigationDropdowns();
    </script>
    Birth Date:
</td>

  <td>
    <input style="width:124px;" type="text" name="birthdate" value="" />
    <a href="#" onclick="calStart.select(document.instantForm.birthdate,'anchorBirthdate','MM/dd/yyyy'); return false;" id="anchorBirthdate">select</a>
  </td>
</tr>

然后有一个div实际上持有日历:

<div id="calendar" style="position:absolute;visibility:hidden; background-color:white; layer-background-color:white;"></div>

所有这一切都在一个页面上完美无缺,但在这个新页面上,我收到了错误

CalendarPopup is not defined

在这一行:

var calStart = new CalendarPopup("calendar");

我错过了什么?我确定这是非常明显的事情,但我已经盯着它看了太久而且看不到它。

4 个答案:

答案 0 :(得分:1)

确保定义CalendarPopup类的脚本位于任何其他javascript引用它之前执行的位置。

答案 1 :(得分:1)

您可以向窗口添加一个事件侦听器,并在加载后执行使用.js文件的代码。

//Some js file

window.addEventListener('load',onload,false);


function onload(){

 var x = new yourObject();
}

您目前正在加载之前调用它,因此对象未定义错误。

答案 2 :(得分:0)

如果你的js文件的来源是相同的 http://www.mattkruse.com/javascript/calendarpopup/source.html,然后说你必须包括其他三个js文件 AnchorPosition.js
date.js
PopupWindow.js

感谢。

答案 3 :(得分:0)

问题很可能是你的javascript文件的加载顺序。

<script>包含标记放入<head>,您就可以了。