台灣最大程式設計社群網站
線上人數
1222
 
會員總數:246690
討論主題:190103
歡迎您免費加入會員
討論區列表 >> Java Script/ Node.js >> 將js code 獨立出來 卻出現找不到物件的錯誤
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
將js code 獨立出來 卻出現找不到物件的錯誤
價值 : 20 QP  點閱數:1013 回應數:1
樓主

芋頭
初學者
247 457
3122 457
發送站內信

請問各位大大
我的程式包在masterpage裡面的 test.aspx
我想要把在 test.aspx 寫的js code 抽出來 放在獨立的js檔(<script type="text/javascript" src="1.js"></script> )-->我就算放在所有程式最下方也是一樣的錯誤
1.在尚未抽離出來前 程式執行正常
2.抽離出來後 會出現var AA = document.getElementById("<%=AA.ClientID%>"); -->找不到物件之類的錯誤 -->請問這個要如何避免阿??
謝謝大大指導~~~

在test.aspx裡長的像這樣
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<script type="text/javascript" src="jquery-latest.min.js"></script>
<script type="text/javascript" language="javascript">
我寫的 js code 原本放在這邊................
var AA = document.getElementById("<%=AA.ClientID%>");
..........
</script>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:ScriptManager ID="ScriptManager2" runat="server" >
</asp:ScriptManager>
一堆 control 跟主要畫面放置處..................
</asp:Content>

本篇文章發表於2014-10-03 09:42
1樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
理所當然的吧
ASP.NET是在主機端執行的,當你的JS未抽出前,<%=AA.ClientID%>這段會在主機被執行,替換成正確的值
但是當你將JS抽出後,JS是在客戶端去另外要求的檔案,這時<%=AA.ClientID%>就無法轉換成正確的值

要修改的話有兩種思路
我個人比較贊同的做法是將JS改寫,對於var AA = document.getElementById("<%=AA.ClientID%>"); 這種不固定的內容改成輸入的參數,然後將AA寫在頁面中
另一種比較偷懶的做法,把抽出的JS寫成ASP.NET
本篇文章回覆於2014-10-03 09:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.