我正在尝试重用我在另一个页面上工作的一些脚本,但是我一直都遇到这个错误。
我有一个名为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");
我错过了什么?我确定这是非常明显的事情,但我已经盯着它看了太久而且看不到它。
答案 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>
,您就可以了。