第一步:在串連樣式表的元素裡定義一個id,例如 <link rel="stylesheet" type="text/css" href="css1.css" id="cssid"> 我定義的id是css。 第二步:寫一個js函數,代碼如下: <script type="text/javascript"> function change(a){ var css=document.getElementById("cssid"); if (a==1) css.setAttribute("href","css1.css"); if (a==2) css.setAttribute("href","css2.css"); if (a==3) css.setAttribute("href","css3.css"); } </script> 這個函數的code可以放在頁面的任何地方。 第三步:為改變頁面的樣式表的串連添加一個函數的觸發事件,代碼如下: <a href="#" onclick="change(1)">我是第一個css1</a> <a href="#" onclick="change(2)">我是第二個css2</a> <a href="#" onclick="change(3)">我是第三個css3</a> 該效果在IE和FF下均測試通過,相信大家看完後因該非常明了,利用這個方法我們可以讓瀏覽者自己選擇需要顯示的樣式表,比如年老者可以選擇一個字型較大的樣式表。這裡需要注意的兩點是:
- 在這個例子中函數名function後面的名字不能為links或者link,如果為links或者link,樣式表將不被改變,具體什麼原因我也不大清楚,可能是javascript的保留字元。
- 另外如果是改變整個頁面的樣式,你需要在樣式表檔案裡定義body的高度為100%
第二種方式 第一步:在串連樣式表的元素裡定義一個id,例如 <link rel="stylesheet" type="text/css" href="css1.css" id="cssid" media="screen"> 第二步:寫一個js函數,代碼如下: <script type="text/javascript"> function change1(){ document.getElementById("cssid").href="css1.css"; } function change2() { document.getElementById("cssid").href="css2.css"; } function change3(){ document.getElementById("cssid").href="css3.css"; } </script> 第三步:為改變頁面的樣式表的串連添加一個函數的觸發事件,代碼如下: <a href="#" onclick="change1()">我是第一個css1</a> <a href="#" onclick="change2()">我是第二個css2</a> <a href="#" onclick="change3()">我是第三個css3</a> 第三種方式:
<script type="text/javascript"> function loadjscssfile(filename, filetype) { if (filetype == "js") { //判斷檔案類型 var fileref = document.createElement('script')//建立標籤 fileref.setAttribute("type", "text/javascript")//定義屬性type的值為text/javascript fileref.setAttribute("src", filename)//檔案的地址 } else if (filetype == "css") { //判斷檔案類型 var fileref = document.createElement("link") fileref.setAttribute("rel", "stylesheet") fileref.setAttribute("type", "text/css") fileref.setAttribute("href", filename) } if (typeof fileref != "undefined") document.getElementsByTagName("head")[0].appendChild(fileref) } //loadjscssfile("myscript.js", "js") //開啟頁面時瀏覽器動態負載檔案 loadjscssfile("css/shop.css", "css") var rl=<%=(String)ViewState["col"]%>; var k = ""; switch(rl) { case 1: k = "1.css"; break; case 2: k = "2.css"; break; } loadjscssfile(k, "css") //開啟頁面時瀏覽器動態載入.css 檔案 var filesadded = "" //儲存已經繫結檔案名字的陣列變數 function checkloadjscssfile(filename, filetype) { if (filesadded.indexOf("[" + filename + "]") == -1) {// indexOf判斷數組裡是否有某一項 loadjscssfile(filename, filetype) filesadded += "[" + filename + "]" //把檔案名稱字添加到filesadded } else alert("file already added!")//如果已經存在就提示 } </script> |