技术开发 频道

.NET开发实现类似Web Parts功能,超简单实现


【IT168技术文档】


  Web Parts的实现有多种方式,由于对.Net 2.0的Web Parts不是很熟,我们用最方便快捷的javascrpt脚本来实现,实现的原理是用Iframe,用户可以自定义自己的桌面,每个Iframe里可以放入一个网页地址,具体要放什么网页,我们可以做一个管理界面,加一个自定义桌面表,可以根据自己的需要,不断的延伸这个功能,做到非常的灵活,强大,这里面有用的XmlHttp技术,让用户自定义自已的桌面时,休验到快速的效果,最后的效果,类似于google的定义功能。现在把实现的脚本代码贴出来,与大家共享,共同进步,这个功能已经在E8.Net工作流开发架构中提供全部源码,E8.Net工作流客户可以直接使用哦!
// Input 0 /** * get element * document.getElementById的封装 * 如果浏览器不支持getElementById方法则返回null */ function _getElementById(a) { return document.getElementById?document.getElementById(a):null } /** * get elements tag name * document.getElementsByTagName的封装 * 根据tagName返回数组,*返回所有tag。 * 如果浏览器不支持getElementsByTagName方法,则返回空数组 */ function _getElementsByTagName(a) { return document.getElementsByTagName?document.getElementsByTagName(a):new Array() } //标志浏览器是否为Safari var isSafari=navigator.userAgent.indexOf("Safari")>=0; /** * 一个标准的colArrayAX替换页面内容典范 * 变量a为地址,aa为回掉处理函数 */ function _sendXMLRequest(theURL,aa) { var xmlHttpObj=getXMLHttpObj(); if(!xmlHttpObj||isSafari&&!aa) {//特殊浏览器特殊照顾 (new Image()).src=theURL; } else {//正常的浏览器,用XMLHTTP显示内容 xmlHttpObj.open("GET",theURL,true); xmlHttpObj.setRequestHeader( "CONTENT-TYPE ", "application/x-www-form-urlencoded "); xmlHttpObj.send(null); } } /** * 拿到一个可用的XMLHttpRequest对象 */ function getXMLHttpObj() { var a=null; if(window.ActiveXObject) { a=new ActiveXObject("Msxml2.XMLHTTP"); if(!a) { a=new ActiveXObject("Microsoft.XMLHTTP"); } } else if(window.XMLHttpRequest) { a=new XMLHttpRequest(); } return a; } function _del(a) { msg="确认不在桌面上显示该模块么?\n\n您可以通过自定义桌面恢复显示!"; if(window.confirm(msg)) { var module=_getElementById("module_"+a); if(module) module.style.display="none"; aI(); } return false } /** * 查找CSS,将class名字为a的aa自段定义值为ab * 例如setCSSAttrib("medit","display", "none"); * 则代表将.media的display定义为none * */ function setCSSAttrib(clasName,attrName,attrValue) { if(document.styleSheets) {//浏览器有styleSheets,查找CSS列表并修改 clasName="."+clasName; for(var i=0;i<document.styleSheets.length;i++) { var classI=document.styleSheets[i]; var rulesI=classI.rules; if(!rulesI) { rulesI=classI.cssRules; if(!rulesI){return} } for(var j=0;j<rulesI.length;j++) { if(rulesI[j].selectorText.toLowerCase()==clasName.toLowerCase()) { rulesI[j].style[attrName]=attrValue } } } } else {//浏览器不支持styleSheets,一个元素一个元素地找并修改-_-b var elementI=_getElementsByTagName("*"); for(var i=0;i<elementI.length;i++) { if(elementI[i].className==clasName) { elementI[i].style[attrName]=attrValue } } } }
0
相关文章