1. 圖片問題
圖片顯示問題:
<img runat="server" src="~/images/ad468x60.gif" alt="" />
方法1:如果<img>標簽外層有runat"server"類型的form 加上runat="server" 路徑使用絕對路徑~/
方法2: background="<%=ResolveClientUrl("~/image/Logo1.jpg")%>"
方法3:使用服務器標簽 <asp:Image runat="server" ID="img" ImageUrl="~/images/close.jpg" />
背景圖問題:
在一個控件的背景使用背景圖的時候,在相對路徑下會找不到圖片,此時只需要將此圖片設置成CSS文件的相對路徑就可以了:
如CSS定義:.menu_head { background-image:url(../images/plus.gif);background-repeat:no-repeat; background-position:right;}
JS文件中改變此背景圖: $(this).css({ backgroundImage: "url(/images/minus.gif)" });
其中url的路徑從‘/’開始,表示從網站的根路徑開始尋址
2. CSS文件引用
<link rel="stylesheet" type="text/css" href="style.css" />
這里神奇的就是link的文件的href是隨着被訪問文件的目錄結構自動調整,說白了就考慮母版頁引用的路徑就可以了,其他不用費心。
比如在母版頁同目錄下的一個文件夾內的一個xxx.aspx引用的母版頁,那么上面的語句在客戶端就自動變為
<link rel="stylesheet" type="text/css" href="../style.css" />
前提就是<head runat="server"></head>必須有runat="server"
3. JS文件引用
<script type="text/javascript" src="menu/jquery.min.js"></script>
這樣的話在其他目錄下的頁面文件,客戶端肯定就引用不到了
那么你需要這樣處理
<script type="text/javascript" src='<%=ResolveUrl("menu/jquery.min.js")%>'></script>
<script type="text/javascript" src='<%=ResolveClientUrl("menu/ddsmoothmenu.js")%>'></script>
那么很明顯ResolveClientUrl是相對路徑,是比較好用的,當然ResolveUrl也有很多地方需要這樣的絕對路徑,其中TLERP是web應用的名字。
4.母版頁下查找DOM問題
方式1:使用母版頁,組件的id都會變得,所以不能寫死,要用 xxxx.ClientID 動態的
方式2:利用jquery智能的selector。 var arg = $('[id$=TextBox1]').val();(未驗證)
獲取window的width和div的width時出現的問題:
一般情況下: ($(".page")代表一個div)
var windowWidth = $(window).width();
var pageWidth = $(".page").width();
但使用母版頁后,內容頁與母版頁不在同一目錄時則不可用:
調試后發現$(window)的第一個元素為一個Window Window下包含innerWidth屬性
$(".page")的第一個元素為一個HTMLDivElement 下面包含clientWidth屬性
所以改寫后為:
var windowWidth = $(window)[0].innerWidth;
var pageWidth = $(".page")[0].clientWidth;