一些實用的筆記

網頁設計特效實用代碼
2007-10-18 17:16

在線製做icon圖標
http://www.chami.com/html-kit/services/favicon/javascript

進入主頁之後自動播放聲音 
<embed src="http://你的網站/music.rm" hidden=true autostart=true loop=true> 

進入主頁後自動最大話,省的去在本身單擊了 
<script> 
self.moveTo(0,0) 
self.resizeTo(screen.availWidth,screen.availHeight) 
</script> 

顯示如今時間的腳本 
<script language=vbscript>document.write now</script> 

顯示最後修改時間的腳本 
<script>document.write(document.lastModified)</script> 

設爲首頁,加爲收藏,加入頻道,啓動outlook發信 
<a style="cursor:hand" 
onclick="this.style.behavior="url(#default#homepage)"; 
this.setHomePage("yourURL">設爲首頁</a> 

<a style="cursor:hand" 
onclick="window.external.AddFavorite(location.href,document.title);">加入收藏</a> 

<a href=javascript:window.external.addChannel("typhoon.cdf")>加入頻道</a> 

<a href="youEmail">與我聯繫</a>

Flash中在按鈕上如何加「設爲首頁」「加入收藏」?action怎麼寫啊?css

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. on (release) {  
  2. getURL("javascript:void(document.links[0].style.behavior='url(#default#homepage)');void document.links[0].setHomePage('84design.com/" target="_blank">http://www.84design.com/');", "_self");  
  3. }  




加入收藏:html

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. on(release) {  
  2. getURL("javascript:window.external.AddFavorite('84design.com/" target="_blank">http://www.84design.com/','E佳工做室')");  
  3. }  



狀態欄動態顯示如今時間 java

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <script>  
  2. function see(){  
  3. window.setTimeout("see()",1000);  
  4. today = new Date();  
  5. self.status = today.toString();  
  6. }  
  7. </script>  
  8. <body onload=see()>   




關閉窗口的腳本 web

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <a href=javascript:close()>[關閉窗口]</a>   




窗口定時關閉 
先將以下代碼網頁文件的<head></head>區:
 sql

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <script language="JavaScript">  
  2.  function closeit() { setTimeout("self.close()",10000) //毫秒 }  
  3.  </script>  



而後再在<body></body>標內加入如:<body onload="closeit()"> 

網頁自動關閉
 數據庫

[html]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <html>  
  2.  <head>  
  3.  <object id=closes type="application/x-oleobject"  
  4.  classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">  
  5.  <param name="Command" value="Close">  
  6.  </object>  
  7.  </head>  
  8.  <body onload="window.setTimeout('closes.Click()',10000)">  
  9.  這個窗口會在10秒事後自動關閉,並且不會出現提示.  
  10.  </body>  
  11.  </html>  




按下F12鍵,直接返回首頁 windows

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <script>function look(){  
  2. if(event.keyCode==123){document.location.href=http://www.wowo-design.com/}  
  3. }  
  4. if(document.onkeydown==null)  
  5. {document.onkeydown=look}  
  6. </script>  




後退,刷新,前進
跨域

[html]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <input type=button value=後退 onclick=history.go(-1)>  
  2. <input type=button value=刷新 onclick=history.go(-0)>  
  3. <input type=button value=前進 onclick=history.go(+1)>   




設定時間彈出窗口,4000=4秒,固然你能夠自定義數組

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <script>function l() {  
  2. window.open("yourURL","name","width=500,height=150,border=0")  
  3. }  
  4. setTimeout("l()",4000)  
  5. </script>  




隨機替換圖片                                                                                                                             <script>

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1.  document.write('<img src="img/'+parseInt(Math.random()*(5))  
  2.  +'.gif"height="40" width="50">')  
  3. </script>  




圖片文件名爲0.gif 1.gif 2.gif 3.gif 4.gif 

防止表格被撐破的代碼
<table width=100 border=1>
<tr><td style="word-break:break-all">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td></tr>

Dreamweaver裏畫細線標格
<table style="border-collapse: collapse">

有沒有可能用層來遮住FLASH?
1.在flash的parameters里加入 <param name="wmode" value="transparent">
2.<body onblur=self.focus()>

如何讓Flash按鈕同時打開兩個網頁
最簡單的辦法,最一個按扭,把

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. on(press){  
  2. getURL("http://www.*****.com";,_blank);  
  3. getURL("http://www.*****.com";,_blank);  
  4. }  



加在按扭上

怎樣點不一樣的連接在同一個Iframe裏顯示?

[html]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <table width="510" border="0" cellspacing="0" cellpadding="0">  
  2. <tr>  
  3. <td width="218" align="center" bgcolor="#eeeeee"><href="http://www.******.com"; target="manager">blueidea</a>  
  4. </td>  
  5. <td width="292" align="center" bgcolor="#eeeeee"><href="http://www.******.com/bbs"; target="manager">bbs</a></td>  
  6. </tr>  
  7. <tr>  
  8. <td height="200" colspan="2"><iframe border=frameborder=framespacing=height=200 marginheight=marginwidth=name=manager scrolling="NO" noresize src="http://www.******.com"; width=500 vspale="0"></iframe></td>  
  9. </tr>  
  10. </table>  


節日倒計時

[html]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <Script Language="JavaScript">  
  2.    var timedate= new Date("October 1,2002");  
  3.    var times="國慶節";  
  4.    var now = new Date();  
  5.    var date = timedate.getTime() - now.getTime();  
  6.    var time = Math.floor(date / (1000 * 60 * 60 * 24));  
  7.    if (time >= 0)  
  8.    document.write("如今離"+times+"還有: "+time +"天")  
  9. </Script>  

隨機變換背景圖象(一個能夠刷新心情的特效) 
在<head></head>之間加上以下代碼: 

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <Script Language="JavaScript">  
  2.    image = new Array(4); //定義image爲圖片數量的數組  
  3.    image [0] = 'tu0.gif' //背景圖象的路徑  
  4.    image [1] = 'tu1.gif'  
  5.    image [2] = 'tu2.gif'  
  6.    image [3] = 'tu3.gif'  
  7.    image [4] = 'tu4.gif'  
  8.    number = Math.floor(Math.random() * image.length);  
  9.    document.write("<BODY BACKGROUND="+image[number]+">");  
  10. </Script>  



select擋住div的解決方法 
在div里加入下面的代碼,根據須要調整就能夠了。

[html]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <iframe src="javascript:false" scrolling="no" frameborder="0" style="z-index:-1;position:absolute; top:5px; left:2px;width:168;height:100px;">  
  2. </iframe>  


服務器上如何定義鏈接
MM_www_STRING ="driver={Microsoft access Driver (*.mdb)};dbq=" & server.mappath("../data/www.mdb")

連接到
response.redirect"login.asp"
location.href="xx.asp"

取得IP

[html]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")  
  2. If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")  
  3.   
  4. sql="update feedbak set hit=hit+1 where id="&request("id")  
  5. conn.execute(sql)  


截取字符是否加...
function formatStr(str,len)
if(len(str)>len)
str = left(str,len) + "..."
end if
formatStr = str
end function

接收表單
If Ucase(Request.ServerVariables("REQUEST_METHOD")) = "POST" then
end if

圖片寬度

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <script language="javascript">  
  2. <!--  
  3. var flag=false;  
  4. function DrawImage(ckp){  
  5. var image=new Image();  
  6. image.src=ckp.src;  
  7. if(image.width>0 && image.height>0)  
  8. {flag=true;  
  9. if(image.width>120){  
  10. ckp.width=120;  
  11. }else{  
  12. ckp.width=image.width;  
  13. }  
  14. ckp.alt=image.width+"×"+image.height;  
  15. }  
  16. }  
  17. //-->  
  18. </script>  
  19. I'll be Back 22:18:06  
  20. <img src="<%=formPath%>/<%=rs("photoname")%>" border="0" >  




跳轉
<meta http-equiv=refresh content='0; url=/distributor/distributor.aspx'>

溢出欄的設制
visible:超出的部分照樣顯示;
hidden:超出的部分隱藏;
scrool:無論有否超出,都顯示滾動條;
auto:有超出時纔出現滾動條;

onMouseOver:鼠標移到目標上;
onMouseUp:按下鼠標再放開左鍵時;
onMouseOut:鼠標移開時;
onMouseDown:按下鼠標時(不須要放開左鍵);
onClink:點擊時;
onDblClick:雙擊時;
onLoad:載入網頁時;
onUnload:離開頁面時;
onResize:當瀏覽者改變瀏覽窗口的大小時;
onScroll:當瀏覽者拖動滾動條的時。

CSS樣式
a:link:表示已經連接;
a:hover:表示鼠標移上連接時;
a:active:表示連接激活時;
a:visited:表示己點擊過的連接。

跳出對話框連接
javascript:alert('lajflsjpjwg')

後退:javascript:history.back(1)

關閉窗口:javascript:window.close();

窗口還原
function restore(){
window.moveTo(8,8);
window.resizeTo(screen.width-24,screen.availHeight-24);
}

head區是指首頁HTML代碼的<head>和</head>之間的內容。
必須加入的標籤

1.公司版權註釋

<!--- The site is designed by Maketown,Inc 06/2000 --->

2.網頁顯示字符集

簡體中文:<META HTTP-EQUIV="Content-Type" C>
繁體中文:<META HTTP-EQUIV="Content-Type" C>
英 語:<META HTTP-EQUIV="Content-Type" C>

3.網頁製做者信息

<META name="author" c>

4.網站簡介

<META NAME="DESCRIPTION" C>

5.搜索關鍵字

<META NAME="keywords" C>

6.網頁的css規範

<LINK href="style/style.css" rel="stylesheet" type="text/css">
(參見目錄及命名規範)

7.網頁標題

<title>xxxxxxxxxxxxxxxxxx</title>

能夠選擇加入的標籤
1.設定網頁的到期時間。一旦網頁過時,必須到服務器上從新調閱。
<META HTTP-EQUIV="expires" C>

2.禁止瀏覽器從本地機的緩存中調閱頁面內容。
<META HTTP-EQUIV="Pragma" C>

3.用來防止別人在框架裏調用你的頁面。
<META HTTP-EQUIV="Window-target" C>

4.自動跳轉。
<META HTTP-EQUIV="Refresh" C>
5指時間停留5秒。

5.網頁搜索機器人嚮導.用來告訴搜索機器人哪些頁面須要索引,哪些頁面不須要索引。
<META NAME="robots" C>
CONTENT的參數有all,none,index,noindex,follow,nofollow。默認是all。

6.收藏夾圖標
<link rel = "Shortcut Icon" href="favicon.ico">

全部的javascript的調用盡可能採起外部調用.
<SCRIPT LANGUAGE="javascript" SRC="script/xxxxx.js"></SCRIPT>

附<body>標籤:

<body>標籤不屬於head區,這裏強調一下,爲了保證瀏覽器的兼容性,必須設置頁面背景<body bgcolor="#FFFFFF"> 

flash透明

在flash的源代碼中加上:<param name="wmode" value="transparent"> 表格透明
style="FILTER: alpha(opacity=72)"

網址前添加icon的方法 
一、上http://www.******.com上用他的icon editor online製做一個圖標。他會將作好的圖標經過email即時發送給你。

二、把這個命名爲favicon.ico的圖標放置在index.html同一個文件夾中。就能夠了。

做一個圖標文件,大小爲16*16像素。文件擴展名爲ico,而後上傳到相應目錄中。在HTML源文件「<head></head>」之間添加以下代碼:

<Link Rel="SHORTCUT ICON" href="http://圖片的地址(注意與剛纔的目錄對應)">

其中的「SHORTCUT ICON」即爲該圖標的名稱。固然若是用戶使用IE5或以上版本瀏覽時,就更簡單了,只需將圖片上傳到網站根目錄下,自動識別

能夠在收藏夾中顯示出你的圖標
<link rel="Bookmark" href="favicon.ico"> 

狀態欄鏈接說明
<A HREF="連接到某處" >某某連接</a>
連接說明
<a href=「」Title=連接說明>

禁止鼠標右鍵
在<body>標籤中加入 <body >

禁止複製,鼠標拖動選取
<body ondragstart=window.event.returnValue=false oncontextmenu=window.event.returnValue=false onselectstart=event.returnValue=false>

水平線
<hr width="長度" size="高度" color="顏色代碼" noshade> noshade爲有無陰影

表單電子郵件提交
< form name="content" method="post" action="mailto:電子郵箱" >< /form>
文本域名爲Subject 爲郵件的標題
郵件連接定製
Mailto:地址 ? Subject=郵件的標題 &bc=抄送 &bcc=密件抄送

背景音樂
<bgsound src=地址 loop="-1">

消除ie6自動出現的圖像工具欄,設置 GALLERYIMG屬性爲false或no . 
<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="no"> 

防止點擊空連接時,頁面每每重置到頁首端 
代碼「javascript:void(null)」代替原來的「#」標記 

如何避免別人把你的網頁放在框架中
<script language=「javascript」><!--if (self!=top){top.location=self.location;} -->< /script> 

頁面定時刷新
<meta http-equiv="Refresh" c > 

頁面定時轉向新的地址
<meta http-equiv="refresh" c> 

顯示日期 

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <script language="javascript"><!--  
  2. today=new Date();  
  3. var week; var date;  
  4. if(today.getDay()==0) week="星期日"  
  5. if(today.getDay()==1) week="星期一"  
  6. if(today.getDay()==2) week="星期二"  
  7. if(today.getDay()==3) week="星期三"  
  8. if(today.getDay()==4) week="星期四"  
  9. if(today.getDay()==5) week="星期五"  
  10. if(today.getDay()==6) week="星期六"  
  11. date=(today.getYear())+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日"+" "  
  12. document.write("<span style='font-size: 9pt;'>"+date+week+"</span>");  
  13. // -->  
  14. </script>   


文字滾動
插入邊框爲0的1行1列的表格,在表格中輸入文字,選中文字,
按ctrl+t輸入marquee direction="up", 回車便可讓文字在表格區域內向上滾動。
(right、down可用於讓文字或圖象向右及向下滾動,修改html原代碼還能夠獲得須要的滾動速度。 

表單驗正

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <SCRIPT language=javascript>  
  2. function checkform(theform){  
  3. if(theform.name.value==""){  
  4. alert("姓名不能爲空!");  
  5. theform.name.focus();  
  6. return false;  
  7. }  
  8. if(theform.tel.value==""){  
  9. alert("電話不能爲空!");  
  10. theform.tel.focus();  
  11. return false;  
  12. }  
  13. }  
  14. </SCRIPT>  


定義鼠標
body{cursor: url(cur.ani或cur);}

以圖片方式插視頻
<IMG height=240 loop=infinite dynsrc=http://amedia.efu.com.cn/EFUADD0001.rmvb width=320>

層在flash上面
< param name="wmode" value="opaque" >

延遲跳轉
<meta http-equiv=refresh content='3; url=javascript:window.close();'>

空連接
javascript:;

標題表格
<fieldset>
<legend>表格的說明</legend>
</fieldset>

細線表格
style="BORDER-COLLAPSE: collapse;"

滾動條顏色代碼

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. BODY{  
  2. SCROLLBAR-FACE-COLOR: #FFFFFF;  
  3. SCROLLBAR-HIGHLIGHT-COLOR: #FFFFFF;  
  4. SCROLLBAR-SHADOW-COLOR: #FFFFFF;  
  5. SCROLLBAR-3DLIGHT-COLOR: #FFCBC8;  
  6. SCROLLBAR-ARROW-COLOR: #FFFFFF;  
  7. SCROLLBAR-TRACK-COLOR: #FFFFFF;  
  8. SCROLLBAR-DARKSHADOW-COLOR: #FFCBC8;  
  9. SCROLLBAR-BASE-COLOR: #FFFFFF  
  10. }  



連續的英文或者一堆感嘆號!!!不會自動換行的問題
只要在CSS中定義了以下句子,可保網頁不會再被撐開了

table{table-layout: fixed;}
td{word-break: break-all; word-wrap:break-word;}

註釋一下:

1.第一條table{table-layout: fixed;},此樣式可讓表格中有!!!(感嘆號)之類的字符時自動換行。

2.td{word-break: break-all},通常用這句這OK了,但在有些特殊狀況下仍是會撐開,所以須要再加上後面一句{word-wrap:break-word;}就能夠解決。此樣式可讓表格中的一些連續的英文單詞自動換行。

控制橫向和縱向滾動條的顯隱?
<body style="overflow-y:hidden"> 去掉x軸
<body style="overflow-x:hidden"> 去掉y軸
<body scroll="no">不顯

表格變色
<TD onmouseover="this.style.backgroundColor='#FFFFFF'" 
onmouseout="this.style.backgroundColor=''"
style="CURSOR: hand"> 

普通iframe頁面
<iframe name="name" src="main.htm" width="450" height="287" scrolling="Auto" frameborder="0"></iframe>

iframe自適應高度
<iframe name="pindex" src="index.asp" frameborder=false scrolling="auto" width="100%" height="100%" frameborder=no onload="document.all['pindex'].style.height=pindex.document.body.scrollHeight" ></iframe>

iframe(嵌入式幀)自適應高度
填寫的嵌入地址必定要和本頁面在同一個站點上,不然會提示「拒絕訪問!」。對跨域引用有權限問題,請查閱其餘資料。
<iframe name="guestbook" src="gbook/index.asp" scrolling=no width="100%" height="100%" frameborder=no onload="document.all['guestbook'].style.height=guestbook.document.body.scrollHeight"></iframe> 

字號縮放
愈來愈多的人長時間的泡網,眼鏡的普及率也愈來愈高,讓文字大點,讓更多的用戶看的更清楚。

[javascript]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <script type="text/javascript">  
  2. function doZoom(size)  
  3. {document.getElementById('zoom').style.fontSize=size+'px';}  
  4. </script>  
  5. <span id="zoom">須要指定大小的文字</span>  
  6. <a href="javascript:doZoom(16)">大</a> <a href="javascript:doZoom(14)">中</a> <a href="javascript:doZoom(12)">小</a>   


select擋住div的解決方法 
在div里加入下面的代碼,根據須要調整就能夠了。
<iframe src="javascript:false" scrolling="no" frameborder="0" style="z-index:-1;position:absolute; top:5px; left:2px;width:168;height:100px;">
</iframe>

跳轉菜單新窗口
<select name="select" onchange="window.open(this.options[this.selectedIndex].value)">
<option value="http://www.microsoft.com/ie"> Internet Explorer</option>
<option value="http://www.microsoft.com"> Microsoft Home</option>
<option value="http://msdn.microsoft.com"> Developer Network</option>
</select>

flash透明選項
<param name="wmode" value="transparent"> 

記錄並顯示網頁的最後修改時間 
<script language=JavaScript> 
document.write("最後更新時間: " + document.lastModified + "") 
</script>

讓IFRAME框架內的文檔的背景透明
<iframe src="about:<body style='background:transparent'>" allowtransparency></iframe> 

打開窗口即最大化
<script language="JavaScript"> 
<!-- Begin 
self.moveTo(0,0) 
self.resizeTo(screen.availWidth,screen.availHeight) 
// End --> 
</script>

文字或圖片彈出指定大小的窗口
在body中加入
<script language="JavaScript" type="text/JavaScript">
function MM_openBrWindow(theURL,winName,features) {window.open(theURL,winName,features);}
</script>
彈出代碼
<a href="#" target="_self" onClick="MM_openBrWindow('windows01.htm','','width=550,height=380')" width="550" height="380" border="0">圖片或文字</a>

flash按鈕加連接 
on (press) {
getURL("http://www.******.com","_blank");


細線分隔線
<hr noshade size=0 color=#C0C0C0> 

消除ie6自動出現的圖像工具欄,設置 GALLERYIMG屬性爲false或no . 
<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="no"> 

禁止頁面正文內容被選取 
<body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return 
false"onmouseup="document.selection.empty()"> 

不能點右鍵,不用CTRL+A,不能複製做!
<body oncontextmenu="window.event.returnValue=false" 
onkeypress="window.event.returnValue=false" 
onkeydown="window.event.returnValue=false" 
onkeyup="window.event.returnValue=false" 
ondragstart="window.event.returnValue=false" 
onselectstart="event.returnValue=false"> 
</body>

隨機變換背景圖象(一個能夠刷新心情的特效 
<Script Language="JavaScript"> 
   image = new Array(4); //定義image爲圖片數量的數組 
   image [0] = 'tu0.gif' //背景圖象的路徑 
   image [1] = 'tu1.gif' 
   image [2] = 'tu2.gif' 
   image [3] = 'tu3.gif' 
   image [4] = 'tu4.gif' 
   number = Math.floor(Math.random() * image.length); 
   document.write("<BODY BACKGROUND="+image[number]+">"); 
</Script> 

flash載入影片 
on (release)
{
loadMovie("1-01.swf", "_root.loaderclip");


圖片表單按鈕
<form id="form1" name="form1" method="post" action="">
<img src="login.gif" width="62" height="22" onclick="document.form1.submit()" />
</form> 

左右陰影背景的CSS定義方法
body {
text-align:center;
background-repeat: repeat-y;
background-position: center;
background-image: url(../images/bg.jpg);


如何關閉層
<div id="Layer1"></div>
<a href="#" onClick="Layer1.style.display='none'">關閉層</a>

運行代碼框
<script>
function Preview()
{var TestWin=open('');
TestWin.document.write(code.value);}
</script>
<textarea id=code cols=60 rows=15></textarea>
<br>
<button onclick=Preview() >運行</button>

給表格作連接 
<table width="100%" onclick="window.open('http://www.******.com/&#39;, '_blank')" style="CURSOR:hand">
<tr>
<td height="100" bgcolor="f4f4f4">&nbsp;</td>
</tr>
</table>

CSS文字陰影 
.shadowfont{FILTER: dropshadow(color=#666666, offx=1, offy=1, positive=1); FONT-FAMILY: "宋體"; FONT-SIZE: 9pt;COLOR: #ffffff;} 

表格透明 
style="FILTER: alpha(opacity=72)" 

Alt和Title的區別 
alt 用來給圖片來提示的。Title用來給連接文字或普通文字提示的。

<a href="#" Title="給連接文字提示">文字</a>
<p Title="給連接文字提示">文字</p>

<img src="圖片連接" alt="給圖片提示">

在同一頁面設置不一樣文字連接效果的樣式
<style type="text/css">
.green {COLOR: #309633}
.green A:link {COLOR: #309633; TEXT-DECORATION: none}
.green A:visited {COLOR: #309633; TEXT-DECORATION: none}
.green A:hover {COLOR: #309633; TEXT-DECORATION: underline}
.green A:active {COLOR: #309633; TEXT-DECORATION: none}
</style>
<a href="#" class="green">文字</a>

在創建與服務器的鏈接時出錯。在鏈接到 SQL Server 2005 時,在默認的設置下 SQL Server 不容許進行遠程鏈接可能會致使此失敗。 (provider: SQL 網絡接口, error: 26 - 定位指定的服務器/實例時出錯) 
首 選請確認SQL SERVER EXPRSS已安裝到本地計算機上,而且SQL SERVER (SQLEXPRESS)服務已經成功啓動。若是問題仍然存在,能夠嘗試應打開「SQL Server 外圍應用配置器」,選擇「服務和鏈接的外圍應用配置器」,而後將「遠程鏈接」配置爲「同時使用 TCP/IP 和 named pipes」

因爲啓動用戶實例的進程時出錯,致使沒法生成 SQL Server 的用戶實例。該鏈接將關閉。 
將鏈接字符串中的「User Instance=True」修改成「User Instance=False」便可。

沒法將文件 'X:WebsiteApp_DataDatabase.mdf' 做爲數據庫 ''. 附加。當前命令發生了嚴重錯誤。應放棄任何可能產生的結果。 
須要爲X分區以及X分區的子文件夾和文件分配Users組的「讀取」權限。

嘗試爲文件 X:WebsiteApp_DataDatabase.mdf 附加自動命名的數據庫,但失敗。已存在同名的數據庫,或指定的文件沒法打開或位於 UNC 共享目錄中。 
首 選要確認已經爲X分區以及X分區的子文件夾和文件分配了Users組的「讀取」權限。若是問題仍然存在,請使用SQL Server Management Studio鏈接到SQLEXPRESS數據庫實例,檢查是否有名稱是「Database」的數據庫存在。若是有,分離同名數據庫便可。若是還有問題檢查web.config中Data Source=.\SQLEXPRESS,若是同時裝了sql2000名稱應爲MSSQL$SQLEXPRESS。

沒法打開用戶默認數據庫。登陸失敗。
用戶 'NT AUTHORITYNETWORK SERVICE' 登陸失敗。
 
數據庫文件Database.mdf 的讀寫權限被設置成只有NETWORK SERVICE才具備。解決方法是先中止掉SQL SERVER (SQLEXPRESS)服務,而後從父項集成權限,再次啓動SQL SERVER (SQLEXPRESS)服務便可。
User:用戶表,存放用戶信息
Role:角色表,存放角色信息
UserInRole:用戶角色映射表,存放用戶和角色的對就關係,多對多,一個用戶能夠對應多個
角色,而不一樣的角色有一同的權限。
Permissions:權限表,不一樣的角色對應不一樣的權限。權限信息使用一個字段flag來表示,
好處是可使用位運算來計算權限,缺點是用位標識的權限受理論值限制,如int理論上能夠
標識31種不一樣的權限, 固然能夠整加一個字段來彌補,ApplicationID標識不一樣的模塊
Application:模塊信息。

  [Flags]
     public enum Flag:long
     { 
      View=1,
      Edit=2,
      Delete=4
     }

特性[Flag]告訴編譯器,當編譯器看到Flag枚舉時,它會充許你用|(or)操做符組合枚舉值,
就像二的整數冪同樣,
例如 Flag  Administer=Flag.View|Flag.Edit|Flag.Delete;表示三種權限的組合。

基礎知識:

位運算

枚舉Flag

當編譯器看到Flag枚舉時,它會充許你用|(or)操做符組合枚舉值,
就像二的整數冪同樣,
例如 Flag Administer=Flag.View|Flag.Edit|Flag.Delete;

經常使用操做,檢查是否存在
Flag administer=Flag.View|Flag.Edit|Flag.Delete;
  public bool Check(Flag administer,Flag mask)
        {
            bool bReturn = false;
            if ((administer & mask) == mask)
                bReturn = true;

            return bReturn;
        }
調用  Check(administer,Flag.Edit)將返回true.

 public Flag SetBit(Flag administer,Flag mask)
        {
          return  administer |= mask;
           
        }

 administer |= mask;操做至關於 administer = administer |mask;

 從枚舉中減去一種狀態
  administer &=mask;

  如 :
Flag administer=Flag.View|Flag.Edit|Flag.Delete;
如須要禁止刪除權限.
 administer &=Flag.Delete;

 另外,標記爲flag的枚舉類型,能夠不設置值
   public enum Flag:long
     { 
      View,
      Edit,
      Delete
     }
   如須要設置,按如下規律, View=1,Edit=2,Delete=4,Reply=8按2次方累加,爲何會這樣?由於他使用二進制操做,
   當你使用 View=1,Edit=2,Delete=3,Reply=4這樣的值, Flag.Delete 包含的值是Flag.Delete仍是View=1|Edit=2就無從檢測了.

每一個用戶,能夠屬於不一樣的角色不一樣的角色分配不一樣的權限,計算全部解權的全部可能的權限組合,只要有充許的權限,那麼該用戶既獲取該權限。

在CS系統中,Permissions表合用了二個字段來標識權限.
 AllowMask,DenyMask 規責是Deny優先,也就是說當權限標記爲Deny那麼不管是否Allow一概禁止該用戶進行此項操做。

另外,像論壇類的權限設計,僅僅一個ApplicationID字段是不夠用的,由於每一個版塊都須要設置不一樣的權限,來控制權限的粒度,可在增長一張Permission表,ApplicationID修改成版塊ID
這樣,就能夠針對不一樣的版塊設置不一樣的權限

好了,接下的問題是怎麼和.net自帶的權限系統掛鉤了。。

在asp.net系統中 ,HttpContext.Current.User實現了一個接口IPrincipal,IPrincipal包含了另外一個接口Identity

  咱們在設計User類的時候繼承此接口
  public class User:IPrincipal
  {
    string username;
    public string Username
    {
     get{return username;}
     set{username=value;} 
    }
  }

  實現IPrincipal接口方法
   public IIdentity Identity
        {
            get {
                if (!string.IsNullOrEmpty(username))
                    _Identity = new GenericIdentity(username,"Forums");
                return (IIdentity)_Identity;
            }
        }

public bool IsInRole(string role)
{
.....
}

怎樣和asp.net掛鉤呢,這裏能夠在登錄時作檢查

 if(HttpContext.Current!=null){
                User u= Users.GetUser(name);
                HttpContext.Current.User =u;

在使用時 
 User u = HttpContext.Current.User as User;
固然檢查用戶角色能夠直接用

 



 if(HttpContext.Current.User.Identity.IsAuthenticated&&HttpContext.Current.User.IsInRole(角色名))


另外能夠直接把到當用戶權限策略掛接到當前線程 ,使用如下方法
    AppDomain.CurrentDomain.SetPrincipalPolicy(User);

好了,接下來,怎麼check權限?

我傾向於使用Attribute

[csharp]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Delegate, Inherited = true, AllowMultiple = true)]  
  2.     public class CheckPermissionAttribute : Attribute  
  3.     {  
  4.   
  5.         int appID;  
  6.         public int ApplicationID  
  7.         {  
  8.             get { return appID; }  
  9.             set { appID = value; }  
  10.         }  
  11.         Permission _allMask;  
  12.         public Permission AllMask  
  13.         {  
  14.             get { return _allMask; }  
  15.             set { _allMask = value; }  
  16.         }  
  17.   
  18.         public CheckPermissionAttribute(ApplicationID app, Permission allMask)  
  19.         {  
  20.             appID = app;  
  21.             _allMask = allMask;  
  22.         }  
  23.         public CheckPermissionAttribute(Permission allMask)  
  24.         {  
  25.             _allMask = allMask;  
  26.         }  
  27.   
  28.     }  



AttributeUsage 第一個參數表示該屬性能夠應用於類,方法,屬性,代理上
Inherited 檢查繼承的權限。
AllowMultiple 充許屢次應用。

按下來,設計一個基類,繼承自Page:

[csharp]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. public   class PageBase : Page  
  2. {  
  3. Flag _allMask;  
  4.   
  5. /// <summary>  
  6.     /// 檢查類型權限  
  7.     /// </summary>  
  8.     public void CheckClass()  
  9.     {  
  10.         Type type = this.GetType();  
  11.         CheckPermissionAttribute att = (CheckPermissionAttribute)CheckPermissionAttribute.GetCustomAttribute(type, typeof(CheckPermissionAttribute));  
  12.         if (att != null)  
  13.         {  
  14.             Check(att.AllMask);  
  15.         }  
  16.     }  
  17.   
  18.   /// <summary>  
  19.     /// 檢查函數調用權限  
  20.     /// </summary>  
  21.     /// <param name="methodName">方法名</param>  
  22.     public void CheckMethod(string methodName)  
  23.     {  
  24.         Type type = this.GetType();  
  25.         string name = "*";  
  26.         if (!string.IsNullOrEmpty(methodName))  
  27.             name = methodName;  
  28.         MemberInfo[] mis = type.FindMembers(MemberTypes.Method ,BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.IgnoreCase,Type.FilterNameIgnoreCase,name);  
  29.         foreach (MethodInfo m in mis)  
  30.        {  
  31.            CheckPermissionAttribute att = (CheckPermissionAttribute)CheckPermissionAttribute.GetCustomAttribute(m, typeof(CheckPermissionAttribute));  
  32.            if (att != null)  
  33.            {   
  34.   
  35.                Check(att.AllMask);  
  36.                             
  37.            }  
  38.              
  39.        }  
  40.        return;  
  41.    
  42.      
  43.     }  
  44.     public void Check(Flag permissions)  
  45.     {  
  46.         if (!CheckPermission(permissions))  
  47.         {  
  48.             string url = string.Format("MsgPage.aspx?msg={0}", HttpUtility.UrlEncode("您沒有權限訪問該資源"));  
  49.             Response.Redirect(url);  
  50.         }  
  51.     }  
  52.     public void Check(ApplicationID appID, Flag permissions)  
  53.     {  
  54.         PermissionManager  pm= Spaces.PermissionManager.Instance(appType);  
  55.         if (!CheckPermission(pm,permissions))  
  56.         {  
  57.             string url = string.Format("MsgPage.aspx?msg={0}", HttpUtility.UrlEncode("您沒有權限訪問該資源"));  
  58.             Response.Redirect(url);  
  59.         }  
  60.   
  61.     }  
  62.   
  63.  protected override void OnInit(EventArgs e)  
  64.     {  
  65.         CheckClass();  
  66.         base.OnInit(e);  
  67.     }  
  68. }  



如何使用:

[csharp]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. [CheckPermission(2, Flag.View)]  
  2. public partial class MyPage : PageBase  
  3. {  
  4.   
  5. }  



若沒有查看權限,會自運導向錯誤頁面。

在類上應用挺方便。

方法上應用我於一個方法比較麻煩,我尚未找到在頁面class裏怎麼獲取當前調用的類名.

能夠調用 CheckMethod(方法名稱);如

[csharp]  view plain  copy
 
 print?在CODE上查看代碼片派生到個人代碼片
  1. <span style="font-family:Arial;">[CheckPermission(2, Flag.Delete)]  
  2. public partial class MyPage : PageBase  
  3. {  
  4.   public void test()  
  5.   {  
  6.    CheckMethod("test");  
  7.    .......  
  8.   }  
  9. }</span>  
相關文章
相關標籤/搜索