同一個web應用,可能在不同的系統中調用,由於不同系統要求頁面樣式不一樣,所以涉及到原始檔案頁面樣式動態適應。
關鍵點: 根據不同系統平台請求參數,載入不同的css檔案,標籤是有id屬性的;
約定大於配置;
不同系統約定對應css樣式檔案名稱,根據不同系統平台請求,首先用js分析出請求的css參數,並把這個參數作為檔案名稱,動態載入到被請求頁面的link:href;
測試檔案如下:
enterIa.htm和enterProduct.htm是兩個入口,csstest.htm代表原始檔案(可以是你的其它系統,css規劃就不太一樣了)
1.enterIa.htm檔案
<script src="jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $('#toia').click(function() { window.location.href = 'csstest.htm?sty=css_ia'; }); }); </script></head><body><div id="toia" style="cursor:pointer">投顧頁面請求</div></body>
2.enterProduct.htm檔案
<script src="jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $('#toproduct').click(function() { window.location.href = 'csstest.htm?sty=css_product'; }); }); </script></head> <body> <div id="toproduct" style="cursor:pointer">產品頁面請求</div> </body>
3.csstest.htm檔案
<HEAD> <TITLE>css 動態載入</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="jquery-1.7.2.min.js" type="text/javascript"> </script> <link id="cs1" href="css_initial.css" rel="stylesheet" title="style1" type="text/css" /> <style type="text/css"> .lii{cursor:pointer;width:200px;} </style> </HEAD> <BODY> <h1>JS操作CSS樣式. </h1> <p> <p>關鍵點: 根據不同系統平台請求參數,載入不同的css檔案,<link>標籤是有id屬性的; <p>約定大於配置; <p>不同系統約定對應css樣式檔案名稱,根據不同系統平台請求,首先用js分析出請求的css參數,並把這個參數作為檔案名稱,動態載入到被請求頁面的link:href; <p>這個方案可以在不同開發語言,平同平台,不同瀏覽器下使用; </p> <ul> <li id="li1" class="lii">css_initial</li> <li id="li2" class="lii">css_ia</li> <li id="li3" class="lii">css_product</li> </ul> <SCRIPT LANGUAGE="JavaScript"><!-- $(function() { //分析URL,提取傳過來的樣式參數,再根據樣式參數不同,載入不同的css檔案 var locurl = window.location.href; //獲得頁面的URL //alert(locurl); var startplace = locurl.indexOf('?'); //得到網址與參數分隔字元的位置,用“?”分隔 if(startplace !=-1) { //獲得參數字串,從分隔字元位置+1處開始擷取 var getit = locurl.substr(startplace + 1, locurl.length); var endplace = getit.split('='); //endplace[0]為key,endplace[1]為val //改變樣式方法1: //固定key,取對應value /*var val; if(endplace[0]=='sty') { val = endplace[1]; if(val =='css_ia') { alert('進入預設為灰色背景,來自' + val + '頁面,h1標題顯示紅字.'); //改變樣式 $('#cs1').get(0).href = 'css_ia.css'; } else if(val =='css_product') { alert('進入預設為灰色背景,來自' + val + '頁面,h1標題顯示黑字,粗體.'); //改變樣式 $('#cs1').get(0).href = 'css_product.css'; } }*/ //(推薦此方法)改變樣式方法2: //約定Key,直接用key作css樣式檔案名稱 alert(endplace[1]+'.css'); $('#cs1').get(0).href = endplace[1]+'.css'; } $('#li1').click(function() { $('#cs1').get(0).href = $(this).html()+'.css'; }); $('#li2').click(function() { $('#cs1').get(0).href = $(this).html()+'.css'; }); $('#li3').click(function() { $('#cs1').get(0).href = $(this).html()+'.css'; }); });//--></SCRIPT></BODY>
4.css_ia.css
body{color:#000}h1{font-size:12px;color:red;font-weight:bold;}p{font-size:13px;color:#001;}
5.css_initial.css
body{background:#ccc;color:#fff}h1{font-size:14px;color:#fff;font-weight:bold;}p{font-size:12px;color:#fff;}
6.css_product.css
body{background:#fee;color:#000}h1{font-size:19px;color:#000;font-weight:bolder;}p{font-size:14px;color:#000;}