极品:蓝丽网 - Vml图像画板.2003 web上的PhotoShop
<HTML xmlns:v>
<HEAD>
<META http-equiv="Content-Type" content="text/html; Charset=gb2312">
<META name="GENERATOR" content="网络程序员伴侣(Lshdic)2004">
<META name="GENERATORDOWNLOADADDRESS" content="http://www.lshdic.com/downlshdic.asp">
<META NAME="KEYWORDS" CONTENT="Vml图像画板">
<title>蓝丽网 - Vml图像画板.2003-www.51windows.Net</title>
<STYLE>
v/:*{behavior:url(#default#VML);} /*声明V为VML变量*/
a{text-Decoration:none;color:white}
a:hover{text-Decoration:underline;color:yellow;}
td{font-size:12px;color:white}
.bon1{border-bottom:1 solid eeeeee;border-right:1 solid eeeeee;border-left:1 solid gray;border-top:1 solid gray;background-color:#619CE7;color:yellow;width:54}
.bon2{border-bottom:1 solid gray;border-right:1 solid gray;border-left:1 solid eeeeee;border-top:1 solid eeeeee;background-color:#619CE7;color:white;width:54}
</STYLE>
</HEAD>
<BODY οncοntextmenu='return false' style='margin:1;cursor:default' vlink=#3732CD link='#3732CD' onselectstart='if(event.srcElement.tagName!="TEXTAREA"&&event.srcElement.tagName!="INPUT")return false'>
<v:Line style='position:absolute;z-index:2000;display:none' id='line1'> <!--钢笔可视化-->
<v:Stroke dashstyle='shortdash'/>
</v:line>
<v:Oval style='position:absolute;z-index:2000;display:none' id='oval1'> <!--圆形可视化-->
<v:Stroke dashstyle='shortdash'/>
</v:oval>
<v:rect style='position:absolute;z-index:2000;display:none' id='rect1'> <!--长方形可视化-->
<v:Stroke dashstyle='shortdash'/>
</v:rect>
<v:roundrect style='position:absolute;z-index:2000;display:none' id='roundrect1'> <!--圆锯形可视化-->
<v:Stroke dashstyle='shortdash'/>
</v:roundrect>
<span style='position:absolute;z-index:2000;display:none' id='wenzi1'> <!--插入文字可视化-->
<textarea id='txt1' style='border:1 solid black;width:200;height:50'></textarea><br>
<center><input type='button' value='插入' class="bon2" οnclick="charuwenzi()">
</span>
<span style='position:absolute;z-index:2000;display:none' id='tupian1'> <!--插入图片可视化-->
<input type='file' id='file1' style='width:200'><br>
<center><input type='button' value='插入' class="bon2" οnclick="charutupian()">
</span>
<span style='position:absolute;z-index:2000;display:none' id='gaoji1'> <!--高级改可视化-->
<textarea id='txt2' style='border:1 solid black;width:400;height:150'></textarea><br>
<center><input type='button' value='修改' class="bon2" οnclick="gaojiobj.outerHTML=txt2.value;gaojiobj=null;gaoji1.style.display='none'">
</span>
<span style='position:absolute;z-index:2000;display:none' id='yuandaima'> <!--所有原代码-->
<textarea id='txt3' style='border:1 solid black;width:600;height:400'></textarea><br>
<center><input type='button' value='复制' class="bon2" οnclick="window.clipboardData.setData('text',txt3.value);alert('已将数据复制到系统剪切板')"> <input type='button' value='更新修改' class="bon2" οnclick="div1.innerHTML=txt3.value;yuandaima.style.display='none'"> <input type='button' value='取消' class="bon2" οnclick="yuandaima.style.display='none'">
</span>
<span style='position:absolute;z-index:2000;display:none' id='menu1'> <!--弹出菜单-->
<input type=button class=bon2 value=置前 οnclick='zz+=1;thisobj.style.zIndex=zz;menu1.style.display="none"'><br>
<input type=button class=bon2 value=置后 οnclick='zz2-=1;thisobj.style.zIndex=zz2;menu1.style.display="none"'><br>
<input type=button class=bon2 value=复制 οnclick='div1.innerHTML+=thisobj.outerHTML;alert("复制完成,请使用选移功能拖动");menu1.style.display="none"'><br>
<input type=button class=bon2 value=删除 οnclick='thisobj.outerHTML="";menu1.style.display="none"'><br>
</span>
<iframe id=web src="about:blank" style="display:none"></iframe> <!--实现保存-->
<span style='position:absolute;z-index:2000;display:none' id='help'> <!--帮助信息-->
<textarea readonly='true' style='border:1 solid black;width:500;height:300'>
VML图像画板.2003(操作帮助及功能简介)
目前最强的网页VML(网页矢量图形标记语言)编辑工具之一,VML学习者的最佳学习工具
能够完成基本的三维网页的设计,做图及图形处理功能一般(原作者今后有时间会去强化)
基本的画笔及图形处理工具在右方,点选后在画板内使用鼠标左键应用
可将画板内VML代码图形保存为文件,亦可通过“修改原代码”实现“打开文件”等功能
文字:该功能暂未提供可视化的修改编辑功能,但代码为HTML相对比较简单
图片:支持FILE:///及HTTP://两种协议类型,矢量化后失真现象很少
记忆点:该功能只有在点击后大于点击时X,Y的坐标,才能看到效果,今后也许原作者会找到好的解决方法
填充:该功能只有“钢笔”所划的线无法使用
边框:该功能的“起点尖头”“终点尖头”只对“钢笔”“记忆点”所画的图形有效
保存为文件:在弹出保存对话框时,在对话框中“语言”下拉菜单中选择“Unicode”保存后能够正常显示
关于打开文件的功能:由于客户端资源及文件编码类型问题,该功能先已“修改原代码”代替,可直接将已保存的VML输入后点击“更新修改”即可虚拟完成已有文件的打开
VML图像画板.2003(版权信息)
原作者:风云舞
主 页:http://www.lshdic.com
最新版:可登陆主页查看
发布于:2003年8月25日
授 权:授权给任何个人使用、应用,自由DHTML代码,可任意修改学习、转载、强化,作者制作本作品出发点是为了提高用户的VML编程水准、开拓一个先例,因而未加密及方便参考仅采用一页代码,为此,未经原作者同意请不要将VML图像画板任何版本用于其他商业用途,侵我版权毁我及作品名声,公开于网站、软件发布及其他应用请保留原作者的这些声明(但可以追加其他信息,如修改者各项授权信息等)
</textarea><br>
<center><input type='button' value='关闭帮助' class="bon2" οnclick="help.style.display='none'">
</span>
<TABLE cellspacing=0 cellpadding=3 width=770 align=center bgcolor='#619CE7' style='border-right:3 dashed green;border-left:3 dashed #4735B0;border-top:1 solid blue;border-bottom:gray' id=allform1>
<tr align=center οnmοuseοver='if(event.srcElement.tagName=="TD"&&event.srcElement.width==70)event.srcElement.bgColor="aaaaaa"' οnmοuseοut='if(event.srcElement.tagName=="TD")event.srcElement.bgColor=""' style='cursor:hand'><td width=70 id=toptd1 οnclick="yuandaima.x=event.x;yuandaima.y=event.y;txt3.value=div1.innerHTML.replace(/>/g,'>/n').replace(/ = /g,'=').replace(//: /g,':').replace(//; /g,';');yuandaima.style.display=''">
修改原代码</td><td width=70 οnclick="web.document.write('<HTML xmlns:v>/n<HEAD>/n<META http-equiv=Content-Type content=text/html;charset=gb2312>/n<TITLE>我的杰作-www.51windows.Net</TITLE>/n<META name=Gemeratpr content=蓝丽VML图形编辑器>/n<META name=GemeratprHomePage content=http://www.lshdic.com>/n<STYLE>/nv//:*{behavior:url(#default#VML);}/n</STYLE>/n</HEAD>/n<BODY>/n'+div1.innerHTML+'/n</BODY>/n</HTML>');web.document.execCommand('SaveAs',false,'我的杰作')">保存为文件</td><td width=70 οnclick="if(this.innerText=='最大化视图'){div1.style.width=document.body.offsetWidth-150;div1.style.height=document.body.offsetHeight-35;this.innerText='恢复视图'}else{div1.style.width=650;div1.style.height='100%';this.innerText='最大化视图'}">最大化视图</td><td width=70 οnclick="help.x=event.x;help.y=event.y;help.style.display=''">操作帮助</td><td width=60> </td><td width=60> </td><td align=right>原作:风云舞,蓝丽程序员网络:<a href='http://www.lshdic.com' target='_blank'>http://www.lshdic.com</a>
</td></tr><tr>
<td width=100% colspan=10 height=500>
<table cellspacing=0 cellpadding=0 height=100%%><tr><td width=660>
<div style='width:650;height:100%;background-color:white;border:1 solid gray;color:black;' id=div1></div>
</td><td>
<div style='width:110;height:100%;'>
<center><b>画笔选择</b><br>
<button class=bon2 id=huabi>选移<button class=bon2 id=huabi>调大小<button class=bon2 id=huabi>扔出</button><button class=bon1 id=huabi>钢笔</button><button class=bon2 id=huabi>记忆点<button class=bon2 id=huabi>圆型<button class=bon2 id=huabi>长方型<button class=bon2 id=huabi>圆矩型<button class=bon2 id=huabi>文字<button class=bon2 id=huabi>图片<button class=bon2 id=huabi>填充<button class=bon2 id=huabi>立体<button class=bon2 id=huabi>边框<button class=bon2 id=huabi>高级</button><br2>
<b>画笔基本参数</b><br>
笔边粗度 <select style="width:54;" id=bibiancudu><option selected>1<script>for(i=2;i<101;i++)document.write("<option>"+i)</script></select><br>
画笔颜色 <input style='border:1 solid black;width:54;height:17;' value='#000000' id=huabiyanse οnmοusedοwn='colortab.style.left=event.x-50;colortab.style.top=event.y+this.offsetHeight;rndcolor(this.id)'><br>
画笔背景 <input style='border:1 solid black;width:54;height:17;' value='#FFFFFF' id=huabibeijing οnmοusedοwn='colortab.style.left=event.x-50;colortab.style.top=event.y+this.offsetHeight;rndcolor(this.id)'><br>
X Y 坐标 <input disabled='true' type='text' value='0,0' id='zuobiao' style='border:1 solid black;width:54;height:17;'><br>
<span id=tianchong1 style='display:none'>
<b> <br>填充基本参数</b><br>
普通背景 <input style='border:1 solid black;width:54;height:17;' value='' id=tianchongbeijing οnmοusedοwn='colortab.style.left=event.x-50;colortab.style.top=event.y+this.offsetHeight;rndcolor(this.id)'><br>使用渐变背景<input type='checkbox' id='usejianbian'><br>
渐变色一 <input style='border:1 solid black;width:54;height:17;color:red' value='#FF0000' id=jianbianse1 οnmοusedοwn='colortab.style.left=event.x-50;colortab.style.top=event.y+this.offsetHeight;rndcolor(this.id)'>
<br>渐变色二 <input style='border:1 solid black;width:54;height:17;' value='#FFFFFF' id=jianbianse2 οnmοusedοwn='colortab.style.left=event.x-50;colortab.style.top=event.y+this.offsetHeight;rndcolor(this.id)'><br>
上下渐变 <input type=radio name='jianbianyangshi' checked><br>
斜向渐变 <input type=radio name='jianbianyangshi'>
</span>
<span id=liti1 style='display:none'>
<b> <br>立体基本参数</b><br>
后向伸展 <select style="width:54;" id=houxiangshenzhan><option selected>20<script>for(i=0;i<101;i++)document.write("<option>"+i)</script></select><br>
<br>前向伸展 <select style="width:54;" id=qianxiangshenzhan><option selected>0<script>for(i=1;i<101;i++)document.write("<option>"+i)</script></select><br>
偏移左边 <select style="width:54;" id=pianyizuobian><option selected>0<script>for(i=1;i<101;i++)document.write("<option>"+i)</script></select><br>
偏移上边 <select style="width:54;" id=pianyishangbian><option selected>0<script>for(i=1;i<101;i++)document.write("<option>"+i)</script></select><br>
立体颜色 <input style='border:1 solid black;width:54;height:17;' value='' id=litiyanse οnmοusedοwn='colortab.style.left=event.x-50;colortab.style.top=event.y+this.offsetHeight;rndcolor(this.id)'><br>
</span>
<span id=biankuang1 style='display:none'>
<b> <br>边框基本参数</b><br>
边框粗度 <select style="width:54;" id=biankuangcudu><option selected>1<script>for(i=0;i<101;i++)document.write("<option>"+i)</script></select><br>
<br>边框样式 <select style="width:54;" id=biankuangyangshi><option selected>none<option>dash<option>dashdot<option>dot<option>longdash<option>longdashdot<option>shortdash<option>shortdashdot<option>shortdashdotdot<option>longdashdotdot<option>shortdot</select><br>
起点尖头 <select style="width:54;" id=qidianjiantou><option selected>none<option>block<option>classic<option>diamond<option>open<option>oval</select><br>
终点尖头 <select style="width:54;" id=zhongdianjiantou><option selected>none<option>block<option>classic<option>diamond<option>open<option>oval</select><br>
边框颜色 <input style='border:1 solid black;width:54;height:17;' value='' id=biankuangyanse οnmοusedοwn='colortab.style.left=event.x-50;colortab.style.top=event.y+this.offsetHeight;rndcolor(this.id)'><br>
</span>
</div>
</td></tr></table>
</td></tr>
</table>
<table cellspacing=0 cellpadding=0 style='position:absolute;width:100;height:100;display:none;background-color:red' id='colortab'><tr><td id='colorid'></td></tr></table>
<script language='jscript'>
var bi=4 //定义当前使用的画笔工具,3为铅笔
var color1='#000000',color2='#000000',size1=0 //定义缺剩的画笔颜色及画笔填充颜色和笔边粗度
var xx=0,yy=0,zz=1000 //定义缺剩的X及Y坐标
var isok=false //区分画笔起点是否在DIV内,超出范围则无效
var moveobj=null,ckleft=0,cktop=0,ckwid=0,ckhei=0,ckto="" //被移动物件、调整大小物件的引用
var poly1=null,oldvalue="",oldx=0,oldy=0 //为了完成记忆点,创建一个可折式线段
var gaojiobj=null //为了完成“高级”功能,绑定被修改对象
var thisobj=null //为了完成各种基本编辑功能,如“置前”“复制”“删除”等
var zz2=1000 //为完成“置后”功能,zz2为负数
function div1.onmousedown(){
div1.setCapture();color1=huabiyanse.value;color2=huabibeijing.value;isok=true;size1=bibiancudu.options[bibiancudu.selectedIndex].text
xx=event.x;yy=event.y;zz+=1
for(i=0;i<huabi.length;i++){if(huabi[i].className=="bon1"){bi=i+1;break}}
line1.strokecolor=color1;line1.strokeweight=size1;oval1.strokeweight=size1;oval1.strokecolor=color1
oval1.fillcolor=color2;rect1.strokeweight=size1;rect1.strokecolor=color1
rect1.fillcolor=color2;roundrect1.strokeweight=size1;roundrect1.strokecolor=color1
roundrect1.fillcolor=color2;
if(event.button==1){
switch(bi){
case 1: //选移
if(event.srcElement.parentElement.id=="div1"){moveobj=event.srcElement;ckleft=xx-parseInt(moveobj.style.left);cktop=yy-parseInt(moveobj.style.top)}
break;
case 2: //调大小
if(event.srcElement.parentElement.id=="div1"){moveobj=event.srcElement;
ckleft=parseInt(moveobj.style.left);cktop=parseInt(moveobj.style.top);ckwid=moveobj.offsetWidth;ckhei=moveobj.offsetHeight}
break;
case 3: //扔出
break;
case 4: //钢笔
line1.style.left=event.x;line1.style.top=event.y;line1.to="0,0";line1.style.display=""
break;
case 5: //记忆点
if(poly1==null){
oldx=xx;oldy=yy
poly1=div1.appendChild(document.createElement("<v:polyline points='0 0 0 0' style='position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";' strokecolor='"+color1+"' strokeweight='"+size1+"' fillcolor='"+color2+"'/>"))
}
if(oldx-tempx<1&&oldy-tempy<1)oldvalue=poly1.points.value.replace(/,/g,' ')
break;
case 6: //圆形
oval1.style.left=event.x;oval1.style.top=event.y;oval1.style.width=0;oval1.style.height=0;oval1.style.display=""
break;
case 7: //长方形
rect1.style.left=event.x;rect1.style.top=event.y;rect1.style.width=0;rect1.style.height=0;rect1.style.display=""
break;
case 8: //圆矩形
roundrect1.style.left=event.x;roundrect1.style.top=event.y;roundrect1.style.width=0;roundrect1.style.height=0;roundrect1.style.display=""
break;
case 9: //文字
wenzi1.style.left=event.x;wenzi1.style.top=event.y;wenzi1.style.display=""
break;
case 10: //图片
tupian1.style.left=event.x;tupian1.style.top=event.y;tupian1.style.display=""
break;
}
}}
function div1.onmousemove(){
tempx=event.x;tempy=event.y;temp1=0;temp2=0
zuobiao.value=tempx-allform1.offsetLeft-8+","+parseInt(tempy-toptd1.offsetHeight-7)
if(bi==5&&poly1!=null){ //记忆点
if(oldx-tempx<0&&oldy-tempy<0)poly1.points.value=oldvalue+" "+(tempx-oldx)+" "+(tempy-oldy)
}
if(event.button==1){
switch(bi){
case 1: //选移
if(moveobj!=null){moveobj.style.left=tempx-ckleft;moveobj.style.top=tempy-cktop}
break;
case 2: //调大小
if(moveobj!=null){
if(moveobj.tagName!="line"){
if(tempx>ckleft){moveobj.style.width=tempx-ckleft}else{moveobj.style.left=tempx;moveobj.style.width=ckleft-tempx}
if(tempy>cktop){moveobj.style.height=tempy-cktop}else{moveobj.style.top=tempy;moveobj.style.height=cktop-tempy}
}else{moveobj.to=parseInt(tempx-ckleft)+","+parseInt(tempy-cktop);if(ckto=="")ckto=parseInt(tempx-ckleft)+","+parseInt(tempy-cktop);}
}
break;
case 4: //钢笔
line1.to=(tempx-xx)+","+(tempy-yy)
break;
case 6: //圆形
if(tempx-xx<0){oval1.style.left=event.x;oval1.style.width=(xx-tempx)}else{oval1.style.width=(tempx-xx)}
if(tempy-yy<0){oval1.style.top=event.y;oval1.style.height=(yy-tempy)}else{oval1.style.height=(tempy-yy)}
break;
case 7: //长方形
if(tempx-xx<0){rect1.style.left=event.x;rect1.style.width=(xx-tempx)}else{rect1.style.width=(tempx-xx)}
if(tempy-yy<0){rect1.style.top=event.y;rect1.style.height=(yy-tempy)}else{rect1.style.height=(tempy-yy)}
break;
case 8: //圆矩形
if(tempx-xx<0){roundrect1.style.left=event.x;roundrect1.style.width=(xx-tempx)}else{roundrect1.style.width=(tempx-xx)}
if(tempy-yy<0){roundrect1.style.top=event.y;roundrect1.style.height=(yy-tempy)}else{roundrect1.style.height=(tempy-yy)}
break;
}}}
function div1.onmouseup(){
document.releaseCapture();if(isok==false){forerr();return false};isok=false;menu1.style.display='none'
tempx=event.x;tempy=event.y;divwid=div1.offsetWidth;divhei=div1.offsetHeight
if(tempx>allform1.offsetLeft+divwid+5||tempx<allform1.offsetLeft+5){forerr();return alert("X坐标越界")}
if(tempy>allform1.offsetTop+toptd1.offsetHeight+divhei+5||tempy<allform1.offsetTop+toptd1.offsetHeight+5){forerr();return alert("Y坐标越界")}
if(event.button==2&&bi==5&&poly1!=null){
poly1.points.value=oldvalue;oldvalue="";poly1=null;
}else if(event.srcElement.parentElement.id=="div1"&&event.button==2){menu1.style.left=tempx;menu1.style.top=tempy;menu1.style.display='';thisobj=event.srcElement}
if(event.button==1){
switch(bi){
case 1: //选移
if(moveobj!=null&&parseInt(moveobj.style.left)<allform1.offsetLeft+5){forerr();return alert("被移动物体X1超出界限")}
if(moveobj!=null&&parseInt(moveobj.style.left)+moveobj.offsetWidth-2>allform1.offsetLeft+divwid+5){forerr();return alert("被移动物体X2超出界限")}
if(moveobj!=null&&parseInt(moveobj.style.top)<allform1.offsetTop+toptd1.offsetHeight+5){forerr();return alert("被移动物体Y1超出界限")}
if(moveobj!=null&&parseInt(moveobj.style.top)+moveobj.offsetHeight-2>allform1.offsetTop+toptd1.offsetHeight+divhei+3){forerr();return alert("被移动物体Y2超出界限")}
moveobj=null
break;
case 2: //调大小
moveobj=null;ckto=""
break;
case 3: //仍出
if(event.srcElement.parentElement.id=="div1")event.srcElement.outerHTML=""
break;
case 4: //钢笔
div1.appendChild(document.createElement("<v:line style='position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";' to='"+(event.x-xx)+","+(event.y-yy)+"' strokecolor='"+color1+"' strokeweight='"+size1+"'/>"))
line1.style.display="none"
break;
case 6: //圆形
div1.appendChild(document.createElement("<v:oval style='position:absolute;z-index:"+zz+";left:"+oval1.style.left+";top:"+oval1.style.top+";width:"+oval1.style.width+";height:"+oval1.style.height+";' strokecolor='"+color1+"' strokeweight='"+size1+"' fillcolor='"+color2+"'/>"))
oval1.style.display="none"
break;
case 7: //长方形
div1.appendChild(document.createElement("<v:rect style='position:absolute;z-index:"+zz+";left:"+rect1.style.left+";top:"+rect1.style.top+";width:"+rect1.style.width+";height:"+rect1.style.height+";' strokecolor='"+color1+"' strokeweight='"+size1+"' fillcolor='"+color2+"'/>"))
rect1.style.display="none"
break;
case 8: //圆矩形
div1.appendChild(document.createElement("<v:roundrect style='position:absolute;z-index:"+zz+";left:"+roundrect1.style.left+";top:"+roundrect1.style.top+";width:"+roundrect1.style.width+";height:"+roundrect1.style.height+";' strokecolor='"+color1+"' strokeweight='"+size1+"' fillcolor='"+color2+"'/>"))
roundrect1.style.display="none"
break;
case 11: //渐变
if(event.srcElement.parentElement.id=="div1"){
if(!usejianbian.checked){event.srcElement.fillcolor=tianchongbeijing.value}else{
temp1=jianbianyangshi[0].checked?'gradient':'gradientradial'
temp2=event.srcElement.innerHTML.replace(/<v/:fill .*<//v:fill>/gi,'')
event.srcElement.innerHTML=temp2+"<v:fill color='"+jianbianse2.value+"' color2='"+jianbianse1.value+"' type='"+temp1+"'/>"
}}
break;
case 12: //立体
if(event.srcElement.parentElement.id=="div1"){
temp2=event.srcElement.innerHTML.replace(/<v/:extrusion .*<//v:extrusion>/gi,'')
event.srcElement.innerHTML=temp2+"<v:Extrusion on='t' color='"+litiyanse.value+"' backdepth='"+houxiangshenzhan.options[houxiangshenzhan.selectedIndex].text+"' foredepth='"+qianxiangshenzhan.options[qianxiangshenzhan.selectedIndex].text+"' rotationangle='"+pianyishangbian.options[pianyishangbian.selectedIndex].text+","+pianyizuobian.options[pianyizuobian.selectedIndex].text+"'/>"
}
break;
case 13: //边框
if(event.srcElement.parentElement.id=="div1"){
temp2=event.srcElement.innerHTML.replace(/<v/:stroke .*<//v:stroke>/gi,'')
event.srcElement.innerHTML=temp2+"<v:Stroke dashstyle='"+biankuangyangshi.options[biankuangyangshi.selectedIndex].text+"' startarrow='"+qidianjiantou.options[qidianjiantou.selectedIndex].text+"' endarrow='"+zhongdianjiantou.options[zhongdianjiantou.selectedIndex].text+"'/>"
event.srcElement.strokecolor=biankuangyanse.value
biankuangcudu.options[biankuangcudu.selectedIndex].text=='0'?event.srcElement.stroked=false:event.srcElement.strokeweight=biankuangcudu.options[biankuangcudu.selectedIndex].text
}
break;
case 14: //高级
if(event.srcElement.parentElement.id=="div1"){
gaojiobj=event.srcElement
txt2.value=event.srcElement.outerHTML.replace(/>/g,">/n").replace(/ = /g,"=").replace(//: /g,":").replace(//; /g,";");gaoji1.style.left=event.x;gaoji1.style.top=event.y;gaoji1.style.display=''
}
}}}
function rndcolor(theobjis){
colortab.style.display="";colorid.innerHTML="";str1="<table cellspacing=0 cellpadding=0>";
for(r=0;r<10;r++){str1+="<tr>"
for(i=0;i<10;i++){
tempcolor1=Math.round(Math.random()*255).toString(16)+Math.round(Math.random()*255).toString(16)+Math.round(Math.random()*255).toString(16);while(tempcolor1.length<6){tempcolor1+=Math.round(Math.random()*9)}
str1+="<td style='width:10;height:10;background-color:#"+tempcolor1+";' οnclick="+theobjis+".value='#"+tempcolor1+"';"+theobjis+".style.color='#"+tempcolor1+"';colortab.style.display='none'></td>"
}str1+="</tr>"}
colorid.innerHTML=str1+"</table>"
}
function document.onmouseup(){
if(event.srcElement.tagName=="BUTTON"){
event.srcElement.blur();div1.focus();if(event.srcElement.className=="bon1"||event.button!=1)return true;
for(i=0;i<huabi.length;i++)huabi[i].className="bon2"
event.srcElement.className="bon1";
if(huabi[10].className=="bon1"){tianchong1.style.display='';tianchongbeijing.value=tianchongbeijing.value==''?huabibeijing.value:tianchongbeijing.value}else{tianchong1.style.display='none';}
if(huabi[11].className=="bon1"){liti1.style.display='';litiyanse.value=litiyanse.value==''?huabibeijing.value:litiyanse.value}else{liti1.style.display='none';}
if(huabi[12].className=="bon1"){biankuang1.style.display='';biankuangyanse.value=biankuangyanse.value==''?huabiyanse.value:biankuangyanse.value}else{biankuang1.style.display='none';}
if(poly1!=null){ //清除记忆点
poly1.points.value=oldvalue;oldvalue="";poly1=null;
};wenzi1.style.display='none';tupian1.style.display='none';gaoji1.style.display='none';menu1.style.display='none'
}}
function forerr(){
if(moveobj!=null&&bi==1){moveobj.style.left=xx-ckleft;moveobj.style.top=yy-cktop;ckleft=0;cktop=0;moveobj=null}
if(moveobj!=null&&bi==2){
if(moveobj.tagName!="line"){moveobj.style.left=ckleft;moveobj.style.top=cktop;moveobj.style.width=ckwid;moveobj.style.height=ckhei;}else{moveobj.to=ckto;}
ckleft=0;cktop=0;ckwid=0;ckhei=0;ckto="";moveobj=null
}
line1.style.display='none';oval1.style.display='none';rect1.style.display='none';roundrect1.style.display='none'
}
function charuwenzi(){ //插入文字
if(txt1.value=="")return alert('请先输入文字,在点击插入')
var newtxt=document.createElement("<span style='position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";color:"+color1+";'></span>");newtxt.innerText=txt1.value
div1.appendChild(newtxt);wenzi1.style.display='none'
}
function charutupian(){ //插入图片
if(file1.value=="")return alert('请先输入图片路径(HTTP://或FILE:///)格式,在点击插入')
if(file1.value.indexOf("'")>-1)return alert("图片地址不可以含有违禁字符 ' 单引号")
var newtxt=document.createElement("<v:Image style='position:absolute;z-index:"+zz+";left:"+xx+";top:"+yy+";width:100;height:100' src='"+file1.value+"'/>");
div1.appendChild(newtxt);tupian1.style.display='none'
}
</script>
相关文章:

库克踏春而来,小而美的 iPhone 全新配件问世
整理 | 苏宓出品 | CSDN(ID:CSDNnews)从乔布斯时代的「不要问消费者想要什么,一个企业的目标就是去创造那些消费者需要但无法形容和表达的需求」,到库克心中的「创新不一定是改变,而是做得更好」࿰…

嵌入式实现 微信网页版 群发信息。
为什么80%的码农都做不了架构师?>>> webchatHelper 一个微信群发信息的chrome扩展 咦,动态图片发不出? http://github.com/think2011/webchatHelper/raw/master/img/demo.gif 杂乱的源码地址:https://github.com/thi…

linux 在执行命令过程中,反单引号(`)这个符号代表的意义为何?
在一串命令中,在之内的命令将会被先执行,而且执行出来的结果将作为外部的输入信息。例如:uname -r 会显示出目前的内核版本,而我们的内核版本在/lib/modules里面,因此。你可以先执行uname -r 找出内核版本,…
C#精髓【月儿原创】第二讲 WMI完美秀出CPU编号厂商主频百分比等全部信息
说明:准备出一个系列,所谓精髓讲C#语言要点。这个系列没有先后顺序,不过尽量做到精。可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注。 C#精髓 第二讲 WMI完美秀出CPU编号厂商主频电压等全部信息 作者:清…

联邦学习,为何而生?
隐私数据是否早已泄露,而我们却毫无察觉?随着大数据、边缘计算、大型云计算平台和各种开源框架的发展,机器学习等人工智能技术以前所未有的速度应用到各个行业,人工智能技术带来了新的挑战,数据的隐私和安全引起了全世…

css控制非固定文本自动换行
不知道为什么一直记不住这个属性,趁有时间整理了下下! 强制不换行p.www_52css_com { white-space:nowrap; } 自动换行p.www_52css_com { word-wrap: break-word; word-break: normal; } 强制英文单词断行p.www_52css_com { word-br…

认清Hadoop和Spark的这几点区别,学习时才能事半功倍
很多初学Hadoop开发的同学分不清Hadoop和Spark究竟有什么联系?搞不清Hadoop和Spark是两个独立的框架,还是必须相互依存才能完成工作?今天就给大家分析一下Hadoop和Spark几点区别。Hadoop和Spark各是什么?HadoopHadoop是一分布式系…
Visual Studio2005奇怪的bug及解决【月儿原创】
Visual Studio2005查看设计器打开失败的bug及解决 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.3.23 在WinForm中报如下的错: Form1 可以进行设计,但不是文件中的第一个类。Visual …

Windows Azure Pack集成配置SPF
前面文章介绍了Windows Azure Pack(WAP)的安装以及功能介绍,当然,仅仅安装还是不够的,我们还需要让WAP与SCVMM集成起来,管理我们的Cloud。今天介绍WAP与私有云交互的一个重要组件,Service Provi…

最高3000元/人 , 助你成为C站红人 !
每天早上起床我都会看一眼富豪榜,如果上面没有我的名字,我就去上班,现在每天早上起床我都会看一眼CSDN红人榜,如果上面有我的名字,我就开始走上人生巅峰之路,如果没有,不可能没有!C站红人计划招募啦 !最高3000元/人助你成为C站红人…

关闭所有cloudfoundry应用进程
for appname in $(cf a|grep started|cut -d " " -f 1) do cf stop $appname done 转载于:https://www.cnblogs.com/husbandmen/p/7419724.html

经典SQL自定义函数
1、确定某年某月有多少天 实现原理:先利用DATEDIFF取得当前月的第一天,再将月份加一取得下月第一天,然后减去1分钟,再取日期的 天数部分,即为当月最大日期,也即当月天数 CREATE FUNCTION DaysInMonth ( d…

Grep学习笔记
1. grep简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包 括grep、egr…

安永创新中心落子北京,聚焦5G技术赋能企业数字化转型
4月21日,安永北京wavespace旗舰创新中心开幕仪式暨企业数字化转型高峰论坛在北京卓著中心举行,该创新中心致力于赋能企业的创新转型、业务增长以及推进前沿技术的商业应用,聚焦组建生态联盟,纳入最新产业理念,通过互联…

JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
随着前端js代码复杂度的提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化。 这篇文章还是希望能给大家一个比较好的思路,即JavaScript模块…

关于强命名程序集
如何创建强命名程序集(Strong Name Assembly)创建一个强命名程序集首先需要获得一个用强命名实用工具(Strong Name Utility,即SN.exe,.NET SDK自带)产生的密钥。下面简要介绍一下SN.exe的一些用法。要产生一…

get the better of sb
2019独角兽企业重金招聘Python工程师标准>>> get the better of sb 克服,占上风,打败 › to defeat someone in a competition:He fought fiercely, but his opponent easily got the better of him.› If a feeling gets the better of you…

安谋中国推出“山海” S12,AIoT 安全解决方案技术全解读
近日,安谋中国推出了自主研发的AIoT全栈安全解决方案“山海”S12,可应用于智能手机、平板、智能电视及安防等行业,为安全解决方案如数字版权保护、AI 安全、身份认证等提供基础安全能力。 据了解,此前安谋中国自研处理器IP已经推出…

js canvas游戏初级demo-上下左右移动
大概流程就是监听状态变化擦除画布重绘 由于js监听时间变化的函数addEventListener只能达到每秒触发20次左右,也就是每秒20帧,看起来有点卡卡的 所以用定时器搞到每秒30帧 按上下左右键可以移动砖块 <!DOCTYPE html> <html lang"en"&…

判断一个IP区间(或IP)是否被另一个IP区间所包含
以下方法实现判断一个IP是否被一个IP区间所包含 有一些静态方法可能引用了同名空间的自定义的类, 至于合并两个相临的IP段,可对其中的最大或最小IP1 using System;using System.Text.RegularExpressions; namespace HKH.Common{ /// <summary>…

制作OpenStack上使用的CentOS系统镜像
很多进行Openstack测试的人都发现,自己的openstack测试环境搭建的很成功,安全策略也添加了,但是上传镜像之后,却出现无法Ping通,无法ssh到实例等问题,实际上这很可能是由于我们没有使用一个正确的镜像导致的…

从最强AI算力到“元脑”2.0,智算加速产业变革
作者 | Just出品 | AI科技大本营(ID:rgznai100)AI模型的数据量、结构的复杂程度不断增加,带来了大规模AI算力的庞大需求。2020年7月,OpenAI实验室推出拥有1750亿参数的NLP模型GPT-3,其训练数据集规模超过500GB…

动态规划和分治法,贪心算法以及递归的再一次深刻理解和体会
每次体会算法都有新的感觉,刷题越多,对算法的理解感觉也就越深刻。下面我们来重新体会下分治法,动态规划,贪心法,递归的理解。1.分治法:将问题分成单独的阶段,每个阶段互相不干扰很独立…

基于注解的设计模式
2019独角兽企业重金招聘Python工程师标准>>> http://alexradzin.blogspot.com/2013/01/annotation-based-design-patterns.html 转载于:https://my.oschina.net/heatonn1/blog/204789

提气!清华成立集成电路学院,专研“卡脖子”技术
整理 | 寇雪芹头图 | 下载于ICphoto出品 | AI科技大本营(ID:rgznai100)今天上午,清华大学举行了集成电路学院揭牌仪式,党委书记陈旭宣读了学院成立决定并致辞表示,集成电路学院为学校实体教学科研机构&…

第一本的java 的小总结
1.Java常见的注释有哪些,语法是怎样的? 1)单行注释用//表示,编译器看到//会忽略该行//后的所文本 2)多行注释/* */表示,编译器看到/*时会搜索接下来的*/,忽略掉/* */之间的文本。 3)文档注释用/** */表示࿰…

WMI Series :事件预订和处理
WMI事件概述对于从事Winows编程的开发人员来说,事件驱动的应用程序设计是再熟悉不过了,但是WMI中的事件又是一个什么样的概念呢?对于宝贵的内存和CPU资源,管理员需要不断的监视其性能;对于磁盘而言,我们需要…

如何记录2秒内实现1800度转体+翻腾,百度智能云黑科技教你看懂跳水
百度智能云与中国国家跳水队协同推进人工智能与体育跨界合作再进一步,正在为我国AI体育的应用探索开拓一片新的大陆。4月22日,百度与中国国家跳水队举行合作启动仪式,百度智能云正式成为中国国家跳水队独家AI合作伙伴,助力中国跳水…

python 多线程日志切割+日志分析
楼主最近刚刚接触python,还是个小菜鸟,没有学习python之前可以说楼主的shell已经算是可以了,但用shell很多东西实现起来还是不可能的事情,例如最明显的一点大日志分析,由于楼主的公司,每天的日志量很大&…

redis入门(03)redis的配置
一、配置文件 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。你可以通过 CONFIG 命令查看或设置配置项。 二、查看修改 1、查看配置 1.1、vi redis.conf 1.2、redis 127.0.0.1:6379> config get CONFIG_SETTING_NAME 2、修改配置 2.1、vi redis.c…