正文

网页颜色对话框的使用2007-09-06 15:25:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wangsdong/29166.html

分享到:

index.asp页面的内容<script language='JavaScript'>function SelectColor(sEL,form){    var dEL = document.all(sEL);    var url = 'selcolor.asp?color='+encodeURIComponent(sEL);    var arr = showModalDialog(url,window,'dialogWidth:280px;dialogHeight:250px;help:no;scroll:no;status:no');    if (arr) {        form.value=arr;        //sEL.style.backgroundColor=arr;    }}</script><form name="form1" method="post" action=""> <input name='FontColor' type='text' value='' size='10' maxlength='10'><a href="#" onclick="SelectColor(this,FontColor)">选择颜色</a></form>selcolor.asp页面内容<HTML><HEAD><META content="text/html; charset=gb2312" http-equiv="Content-Type"> <STYLE type=text/css>TD {FONT-SIZE: 10.8pt}BODY {FONT-SIZE: 10.8pt}BUTTON {WIDTH: 5em}</STYLE>   <SCRIPT language=JavaScript> var URLParams = new Object() ;var sAction = URLParams['action'] ;var sTitle = "";var color = "" ;var oSelection;var oControl;var sRangeType; // 是否有效颜色值function IsColor(color){ var temp=color; if (temp=="") return true; if (temp.length!=7) return false; return (temp.search(/\#[a-fA-F0-9]{6}/) != -1);} switch (sAction) { case "forecolor": // 字体前景色  sTitle = "字体前景色";  oSelection = dialogArguments.eWebEditor.document.selection.createRange();  color = oSelection.queryCommandValue("ForeColor");  if (color) color = N2Color(color);  break; case "backcolor": // 字体背景色  sTitle = "字体背景色";  oSelection = dialogArguments.eWebEditor.document.selection.createRange();  color = oSelection.queryCommandValue("BackColor");  if (color) color = N2Color(color);  break; case "bgcolor":  // 对象背景色  sTitle = "对象背景色";  oSelection = dialogArguments.eWebEditor.document.selection.createRange();  sRangeType = dialogArguments.eWebEditor.document.selection.type;  if (sRangeType == "Control") {   oControl = GetControl(oSelection, "TABLE");  }else{   oControl = GetParent(oSelection.parentElement());  }  if (oControl) {   switch(oControl.tagName){   case "TD":    sTitle += " - 单元格";    break;   case "TR":   case "TH":    sTitle += " - 表格行";    break;   default:    sTitle += " - 表格";    break;   }   color = oControl.bgColor;  }else{   sTitle += " - 网页";  }  break; default:   // 其它颜色框  if (URLParams['color']){   color = decodeURIComponent(URLParams['color']) ;  }  break;} document.write("<TITLE>颜色选择(" + sTitle + ")</TITLE>"); // 默认显示值if (!color) color = "#000000"; // 返回有背景颜色属性的对象function GetParent(obj){ while(obj!=null && obj.tagName!="TD" && obj.tagName!="TR" && obj.tagName!="TH" && obj.tagName!="TABLE")  obj=obj.parentElement; return obj;} // 返回标签名的选定控件function GetControl(obj, sTag){ obj=obj.item(0); if (obj.tagName==sTag){  return obj; } return null;} // 数值转为RGB16进制颜色格式function N2Color(s_Color){ s_Color = s_Color.toString(16); switch (s_Color.length) { case 1:  s_Color = "0" + s_Color + "0000";   break; case 2:  s_Color = s_Color + "0000";  break; case 3:  s_Color = s_Color.substring(1,3) + "0" + s_Color.substring(0,1) + "00" ;  break; case 4:  s_Color = s_Color.substring(2,4) + s_Color.substring(0,2) + "00" ;  break; case 5:  s_Color = s_Color.substring(3,5) + s_Color.substring(1,3) + "0" + s_Color.substring(0,1) ;  break; case 6:  s_Color = s_Color.substring(4,6) + s_Color.substring(2,4) + s_Color.substring(0,2) ;  break; default:  s_Color = ""; } return '#' + s_Color;} // 初始值function InitDocument(){ ShowColor.bgColor = color; RGB.innerHTML = color; SelColor.value = color;} var SelRGB = color;var DrRGB = '';var SelGRAY = '120'; var hexch = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); function ToHex(n) {  var h, l;  n = Math.round(n); l = n % 16; h = Math.floor((n / 16)) % 16; return (hexch[h] + hexch[l]);} function DoColor(c, l){ var r, g, b;  r = '0x' + c.substring(1, 3); g = '0x' + c.substring(3, 5); b = '0x' + c.substring(5, 7);  if(l > 120){  l = l - 120;   r = (r * (120 - l) + 255 * l) / 120;  g = (g * (120 - l) + 255 * l) / 120;  b = (b * (120 - l) + 255 * l) / 120; }else{  r = (r * l) / 120;  g = (g * l) / 120;  b = (b * l) / 120; }  return '#' + ToHex(r) + ToHex(g) + ToHex(b);} function EndColor(){ var i;  if(DrRGB != SelRGB){  DrRGB = SelRGB;  for(i = 0; i <= 30; i ++)  GrayTable.rows(i).bgColor = DoColor(SelRGB, 240 - i * 8); }  SelColor.value = DoColor(RGB.innerText, GRAY.innerText); ShowColor.bgColor = SelColor.value;}</SCRIPT> <SCRIPT event=onclick for=ColorTable language=JavaScript> SelRGB = event.srcElement.bgColor; EndColor();</SCRIPT> <SCRIPT event=onmouseover for=ColorTable language=JavaScript> RGB.innerText = event.srcElement.bgColor; EndColor();</SCRIPT> <SCRIPT event=onmouseout for=ColorTable language=JavaScript> RGB.innerText = SelRGB; EndColor();</SCRIPT> <SCRIPT event=onclick for=GrayTable language=JavaScript> SelGRAY = event.srcElement.title; EndColor();</SCRIPT> <SCRIPT event=onmouseover for=GrayTable language=JavaScript> GRAY.innerText = event.srcElement.title; EndColor();</SCRIPT> <SCRIPT event=onmouseout for=GrayTable language=JavaScript> GRAY.innerText = SelGRAY; EndColor();</SCRIPT> <SCRIPT event=onclick for=Ok language=JavaScript> color = SelColor.value; if (!IsColor(color)){  alert('无效的颜色值!');  return; }  switch (sAction) {  case "forecolor":   dialogArguments.format('ForeColor', color) ;   window.returnValue = null;   break;  case "backcolor":   dialogArguments.format('BackColor', color) ;   window.returnValue = null;   break;  case "bgcolor":   if (oControl){    oControl.bgColor = color;   }else{    dialogArguments.setHTML("<table border=0 cellpadding=0 cellspacing=0 width='100%' height='100%'><tr><td valign=top bgcolor='"+color+"'>"+dialogArguments.getHTML()+"</td></tr></table>");   }   window.returnValue = null;   break;  default:   window.returnValue = color;   break; } window.close();</SCRIPT> </HEAD> <BODY bgColor=#D4D0C8 onload="InitDocument()"><DIV align=center><CENTER>  <TABLE border=0 cellPadding=0 cellSpacing=10>   <TBODY>    <TR>     <TD>      <TABLE border=0 cellPadding=0 cellSpacing=0 id=ColorTable style="CURSOR: hand">        <SCRIPT language=JavaScript>          function wc(r, g, b, n){            r = ((r * 16 + r) * 3 * (15 - n) + 0x80 * n) / 15;     g = ((g * 16 + g) * 3 * (15 - n) + 0x80 * n) / 15;     b = ((b * 16 + b) * 3 * (15 - n) + 0x80 * n) / 15;             document.write('<TD BGCOLOR=#' + ToHex(r) + ToHex(g) + ToHex(b) + ' height=8 width=8></TD>');          }          var cnum = new Array(1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0);         for(i = 0; i < 16; i ++){    document.write('<TR>');    for(j = 0; j < 30; j ++){  n1 = j % 5;  n2 = Math.floor(j / 5) * 3;  n3 = n2 + 3;   wc((cnum[n3] * n1 + cnum[n2] * (5 - n1)),  (cnum[n3 + 1] * n1 + cnum[n2 + 1] * (5 - n1)),  (cnum[n3 + 2] * n1 + cnum[n2 + 2] * (5 - n1)), i);         }          document.writeln('</TR>');         }       </SCRIPT>       <TBODY></TBODY>      </TABLE>     </TD>     <TD>      <TABLE border=0 cellPadding=0 cellSpacing=0 id=GrayTable style="CURSOR: hand">        <SCRIPT language=JavaScript>          for(i = 255; i >= 0; i -= 8.5)            document.write('<TR BGCOLOR=#' + ToHex(i) + ToHex(i) + ToHex(i) + '><TD TITLE=' + Math.floor(i * 16 / 17) + ' height=4 width=20></TD></TR>');        </SCRIPT>        <TBODY></TBODY>      </TABLE>     </TD>   </TR> </TBODY></TABLE></CENTER></DIV><DIV align=center><CENTER> <TABLE border=0 cellPadding=0 cellSpacing=10>  <TBODY>   <TR>     <TD align=middle rowSpan=2>选中色彩      <TABLE border=1 cellPadding=0 cellSpacing=0 height=30 id=ShowColor width=40 bgcolor="">       <TBODY>        <TR><TD></TD></TR>       </TBODY>      </TABLE>     </TD>     <TD rowSpan=2>基色: <SPAN id=RGB></SPAN><BR>亮度: <SPAN id=GRAY>120</SPAN><BR>代码: <INPUT id=SelColor size=7 value=""></TD>     <TD><BUTTON id=Ok type=submit>确定</BUTTON></TD></TR>   <TR>    <TD><BUTTON onclick=window.close();>取消</BUTTON></TD>   </TR>  </TBODY> </TABLE></CENTER></DIV></BODY></HTML>转载请注明来源

阅读(3879) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册