ntraweb多窗口问题.doc_第1页
ntraweb多窗口问题.doc_第2页
ntraweb多窗口问题.doc_第3页
ntraweb多窗口问题.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ntraweb多窗口问题2008-12-18 18:45:16|分类: 默认分类 |举报 |字号订阅 不知何时我的这一个关于intraweb的 blog变成了围绕intraweb多窗口这一个问题转.好几遍文章似乎都是为了实现这一目标而准备一样,当然啦我们的网友也是一直在烦努这一个,想用, 但又不想实现类似page模式的那种不可靠或是用其它的js框架例如extjs的方式来实现,一直在郁闷之中.我看到这一个状况也是有点郁闷, 希望大家能够更专注于业务逻辑的实现,为了使大家更专注,现提供一个简单的解决办法,当然啦,想精益求精的朋友可要认真学习js文面的知识哦,好了废话不 说,马上去片首先分析. 何谓多窗体呢?我总结出来是这样子的,是一个容器,一个独立的容器,能够放其它任何form能放的component,并且能被拖动,可以关闭,显示等. 在iw中最直接的一个想法就是多个ie窗口.只好用page或是仿page模式了.关于这种方法的利敝我想有用过的朋友早己领教过了,反正我是不用的.像 我之前说的,可能以用arc控件,但是那一个控件只能popup一个窗体,并且是模式的,不能做多窗体效果.我分析了一下iw的js代码,其实iw是把这 些子窗体放在一个div里面而己,只是没有加上可拖动的代码,所以我们如果用起来就很烦了.(现实中,div标签就是纯html或asp之类语言实现主从 窗体的一个解决办法,当然啦还有opendialog,但opendialog在firefox中并不能运用) 在intraweb的众多控件中能作为容器并能在客户端生成div标签的除了刚才提到的arc控件之外还有intraweb自带的 iwregion与iwframe,那很明显了,我们准备要下手的就是iwframe.我们用iwframe作为我们的子窗体.在用iwframe之前首 先加入一个iwregion到期iwframe中,algin:=altop;color=蓝色,name=reghead,在reghead中 放入一个iwimage,algin=alclient;在iwimage.eventscript.onmousedown中加入如入js代码var ids=this.parentElement.parentElement.parentElement.id;var mydiv=document.getElementById(ids);var maxzindex=0;var thiszindex=0;var divs=document.getElementsByTagName(DIV) for(var i=0;imaxzindex)maxzindex=thiszindex;thiszindex=0;mydiv.style.zIndex=maxzindex+1;drag(mydiv);function drag(div) div.onmousedown=function(a) var d=document; var e=d.body?d.body:d.documentElement; if(!a)a=window.event; var x=a.layerX?a.layerX:a.offsetX, y=a.layerY?a.layerY:a.offsetY; if(div.setCapture) div.setCapture(); else if(window.captureEvents) window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP); d.onmousemove=function(a) if(!a)a=window.event; var ex = a.clientX?a.clientX:a.pageX, ey = a.clientY?a.clientY:a.pageY; var scrollY = e.scrollTop; var scrollX = e.scrollLeft; var tx=ex-x+scrollX, ty=ey-y+scrollY; if(x25) var w=parseInt(div.style.width).replace(px,), h=parseInt(div.style.height).replace(px,); return false; div.style.left=tx; div.style.top=ty; ; d.onmouseup=function() if(div.releaseCapture) div.releaseCapture(); else if(window.captureEvents) window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP); d.onmousemove=null; d.onmouseup=null; ; ; 这段代码有两个重要的作用 1.设定iwimage所有的iwframe在客户端生成的div能被鼠标按着iwimage的时候拖动2.设定这个div的zindex始终为最大值,一直位于顶层,不被其它的div覆盖.然后在这一个iwimage的scriptevent.onmouseout事件里面消除以上所设定的事件,js代码如下var ids=this.parentElement.parentElement.parentElement.id;var mydiv=document.getElementById(ids);mydiv.onmousemove=null;mydiv.onmousedown=null;mydiv.onmouseup=null;至此为止这一个iwframe的移动代码就可以完成了.把这一个修改后的iwframe放在任何的一个iwappform中都可以移动了,当然啦如果我们有多个这样的iwframe就都可以在同一个iwappform中拖动来达到多窗体的效果.关于如何动态生在这些iwfr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论