我是使用母版頁編寫ASP.Net應用程序的新手,我遇到了我花了一些時間但似乎無法解決。在母版頁或使用母版頁拋出「Object Expected Error」的頁面中嵌入的Javascript
我的情況是,我有一個母版頁,看起來像這樣的結構:
<head runat="server">
<title>Test Site</title>
<link rel="Stylesheet" type="text/css" href="Default.css" />
<script type="text/javascript" language="javascript" src="js/Default.js" />
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<meta http-equiv="Pragma" content="no-cache"/>
<asp:ContentPlaceHolder ID="cphHead" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div id="divHeader">
<asp:ContentPlaceHolder ID="cphPageTitle" runat="server"></asp:ContentPlaceHolder>
</div>
<div id="divMainContent">
<asp:ContentPlaceHolder ID="cphMainContent" runat="server"></asp:ContentPlaceHolder>
</div>
</div>
</form>
</body>
然後我有一個使用該母版頁的頁面包含以下內容:
<asp:Content ContentPlaceHolderID="cphHead" runat="server">
<script type="text/javascript" language="javascript" >
function test() {
alert("Hello World");
}
</script>
</asp:Content>
<asp:Content ContentPlaceHolderID="cphMainContent" runat="server">
<fieldset>
<img alt="Select As Of Date" src="Images/Calendar.png" id="aAsOfDate" class="clickable" runat="server" onclick="test();" />
<asp:Button runat="server" CssClass="buttonStyle" ID="btnSubmit" Text="Submit" OnClick="btnSubmit_Clicked"/>
</fieldset>
</asp:Content>
當我運行這個頁面並點擊圖片時,我得到一個"Object Expected"
錯誤。
但是,如果我將測試函數放到我的Default.js外部文件中,它將會完美運行。
我似乎無法弄清楚爲什麼會發生這種情況。有任何想法嗎?
在這一點上我擁有一切註釋掉用於測試目的。最初,我有四個額外的外部js文件正在引用我正在使用的日曆控件。 另一個有趣的事情是,這個頁面工作完美,直到我將主頁面添加到組合中。一旦我這樣做,這個錯誤開始發生。 我也使用內置的VS開發服務器來測試它,不知道這是否會有所作爲。 – Philter 2010-06-09 13:30:59
經過一些進一步的測試,如果在母版頁或實際內容頁面中引用了任何外部js文件,它似乎會給我js對象預期錯誤。如果我評論所有外部包含內嵌腳本正常工作。 – Philter 2010-06-09 14:08:26
很難說如果不能查看代碼,但我懷疑其中一個文件中有一些未完成的對象正在層疊,導致test()不會被註冊爲全局文件。你有沒有嘗試過只包含Default.js兩次或另一個只有alert('空腳本')這樣良性聲明的測試腳本; ?如果它通過,一次添加一個腳本。如果失敗,請嘗試使用Jint庫進行追蹤。 http://www.ehow.com/how_4791439_code-javascript-lint-visual-studio.html – Laramie 2010-06-09 17:33:18