2012-08-06 74 views
0

我无法调用JavaScript函数,因为它显示“Object Expected”。我正在使用asp.net,并且在一些标准的aspx页面上使用了一些usercontrols。一位名为CookieControl用户控件的调用document.ready.iejavascript object expexted

$(document).ready(function() { 
     setandCheckCookie(); 
)}; 

JavaScript方法setandCheckCookie()在头节我的aspx页面上我引用的JavaScript文件之前,我想补充控制:

<script src="CookiesControl/js/Cookie.js" type="text/javascript"></script> 
<uc2:Cookie ID="Cookie1" runat="server" /> 

我已经尝试在用户控件本身添加脚本引用,但是当我去我的aspx页面时,我得到了对象的预期错误。

我不相信它的控制或js文件,因为它们都用在网站的其他地方,它们工作正常,但我正在做的是阻止js文件被引用,因为在firebug和IE调试器中我无法看到引用的js文件。

也许路径是不正确的,但我已经从解决方案资源管理器中拖动脚本,Visual Studio也没有抱怨路径。

所以我的问题是:什么可能会阻止我的JavaScript文件被引用。

回答

1

Visual Studio抱怨或不关注路径并不总是说你会在浏览器中得到什么。要检查脚本是否被引用好,请尝试在浏览器中获取脚本文件。例如,如果页面位于http://yoursite/yourpage.aspx,并且在html代码中的脚本引用(由View Source,而不是您在Visual Studio中看到的)为folder/scriptFile.js,请将该地址设置为http://yoursite/folder/scriptFile.js,然后查看是否获取该文件。如果不是,那么它没有被引用好。 要解决的问题这样,把完整路径yoursite后,如:

<script src="/ScriptVirtualFolder/CookiesControl/js/Cookie.js" type="text/javascript"></script> 

其中ScriptVirtualFolder是在你的站点根文件夹,它是一个虚拟文件夹,意味着它是在这个路径中的浏览器访问。 此外,您可以使用asp.net通过使用~标志和runat='server'解决您的路径。例如:

<script src="~/ScriptServerFolder/CookiesControl/js/Cookie.js" type="text/javascript" runat="server"></script>