2013-07-29 42 views
0

我有一個ASP.Net網站與一些JS文件引用。在我的母版頁標題我有3個文件,這些文件總是引用和單一功能JS文件引用混淆行爲

<script src="/EPS/Scripts/jquery-1.10.0.min.js" type="text/javascript"></script> 
    <script src="/EPS/Scripts/jquery-ui.min.js" type="text/javascript"></script> 
    <script src="/EPS/Scripts/menu.js" type="text/javascript"></script>  

    <script language="javascript" type="text/javascript"> 

     function checkJavaScriptValidity() { 
      document.getElementById("jsDisabled").style.visibility = 'hidden'; 
      document.getElementById("jsEnabled").style.visibility = 'visible';    
     } 

    </script> 

然後在我的aspx頁面我有更多的引用(也加入到使用ContentPlaceHolders頁頭)

*JS1*<script type="text/javascript" language="javascript" src="https://serverapi.arcgisonline.com/jsapi/arcgis/3.5"></script>  
    <script src="/EPS/Scripts/savestate.js" type="text/javascript" > </script> 
    *JS2*<script src="/EPS/EPS_Controls/wcMapControl.js" type="text/javascript" > </script> 
一個

問題: 我有一個使用我打上JS1JS2文件(這些標籤不在源代碼中)的用戶控制。當控件加載/使用時,我得到一個錯誤在JS或它不運行。在過去的幾個小時裏,我嘗試了幾件事(順序和地點),它沒有改變。

瀏覽器

IE8:在當前的順序,我得到錯誤: 「Microsoft JScript運行錯誤:」未定義爲空或不是對象「 在JS1

FF V22 .0我沒有得到任何錯誤信息(或至少我找不到)但我知道我的JS沒有運行

現在這裏是我的困境,我用這個SAME控制和那些SAME JS文件在另一個測試項目,它工作正常W/O沒有任何問題!

問題任何線索/想法爲什麼會發生這種情況?我的項目中的哪些配置會影響/導致這種情況?

回答

1

請記住,當談到JavaScript時,一切都取決於瀏覽器所看到的 - 服務器代碼,項目配置或應用中的任何其他內容都不會導致javascript問題。

考慮到這一點,只需在頁面上運行查看源代碼即可。我的猜測是你的腳本標籤在控件之後被放入,所以控件試圖做一些尚未定義的事情。一旦你確認了這一點,找出腳本內容佔位符的位置,並相應地移動它 - 它現在可能在身體中,只需要進入頭部,或者至少在身體中更高。

+0

我的JS文件是在頭部,而控制在體內 –

+0

在確認我的JS文件的位置,我注意到在我的控制內部JS調用錯誤會導致未定義,接受作爲答案因爲你指出我在這個方向 –

+0

很酷,很高興你得到它的工作。 –

1

爲確保外部腳本的正確加載,請在主頁面中使用ScriptManager,在內容頁面和用戶控件中使用ScriptManagerProxy。例如,在母版頁:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
<Scripts> 
    <asp:ScriptReference Path="/EPS/Scripts/jquery-1.10.0.min.js" /> 
    <asp:ScriptReference Path="/EPS/Scripts/jquery-ui.min.js" /> 
    <asp:ScriptReference Path="/EPS/Scripts/menu.js" /> 
</Scripts> 
</asp:ScriptManager> 

在內容頁

<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"> 
<Scripts> 
    <asp:ScriptReference Path="https://serverapi.arcgisonline.com/jsapi/arcgis/3.5" /> 
    <asp:ScriptReference Path="/EPS/Scripts/savestate.js" /> 
</Scripts> 
</asp:ScriptManagerProxy> 
+0

您是否建議我使用SM來註冊JS文件,而不是在我的HTML中使用它們? –

+0

@JafarKofahi仍然使用HTML(ASPX標記)而不是引用頁面標題中的

  • 11. 混淆引用操作
  • 12. 混淆Perl數組行爲
  • 13. 混淆JavaScript對象行爲
  • 14. 混淆增量行爲
  • 15. 混淆jQuery的行爲
  • 16. 數組行爲混淆
  • 17. 混淆行爲與Android的
  • 18. 混淆線程的行爲
  • 19. 混淆C++線程行爲
  • 20. CComboBox DDX_CBString行爲混淆
  • 21. Python新行混淆CSV文件
  • 22. 插件來混淆JS/jQuery代碼
  • 23. Knockout JS映射插件混淆
  • 24. 目錄混淆Express JS
  • 25. Android,混淆jar文件庫?
  • 26. Proguard的混淆JAR文件
  • 27. .Net配置文件混淆
  • 28. 混淆文件的加密
  • 29. 密碼文件混淆
  • 30. Struts2與web.xml文件混淆