2012-08-06 72 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>