??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产成人久久精品大牛影视,亚洲国产日韩综合久久精品,亚洲人xxx日本人18http://www.tkk7.com/cgogg/category/23075.htmlTake Easyzh-cnThu, 05 Jul 2007 05:59:00 GMTThu, 05 Jul 2007 05:59:00 GMT60动态图js脚本http://www.tkk7.com/cgogg/articles/128299.htmlchenguochenguoThu, 05 Jul 2007 03:53:00 GMThttp://www.tkk7.com/cgogg/articles/128299.htmlhttp://www.tkk7.com/cgogg/comments/128299.htmlhttp://www.tkk7.com/cgogg/articles/128299.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/128299.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/128299.html        <!-- 动态图开?-->

<script language=JavaScript>

 

var imgUrl=new Array();

var imgLink=new Array();

var adNum=0;

imgUrl[1]="images/default/toplist/1.jpg";

imgLink[1]="/z/chn-iran/photo/3712/index.shtml";

imgUrl[2]="images/default/toplist/2.jpg";

imgLink[2]="/z/chn-iran/photo/3712/index.shtml";

imgUrl[3]="images/default/toplist/3.jpg";

imgLink[3]="/z/chn-iran/photo/3672/";

imgUrl[4]="images/default/toplist/4.jpg";

imgLink[4]="/z/chn-iran/photo/3672/";

imgUrl[5]="images/default/toplist/5.jpg";

imgLink[5]="/z/chn-iran/photo/3672/";

 

 

var imgPre=new Array();

var j=0;

for (i=1;i<=5;i++) {

       if( (imgUrl[i]!="") && (imgLink[i]!="") ) {

              j++;

       } else {

              break;

       }

}

 

function playTran(){

       if (document.all)

              imgInit.filters.revealTrans.play();

}

 

var key=0;

function nextAd(){

       if(adNum<j)adNum++ ;

       else adNum=1;

     

       if( key==0 ){

              key=1;

       } else if (document.all){

              imgInit.filters.revealTrans.Transition=6;

              imgInit.filters.revealTrans.apply();

                 playTran();

 

       }

       document.images.imgInit.src=imgUrl[adNum];

       theTimer=setTimeout("nextAd()", 6000);

}

 

 

function goUrl(){

       jumpUrl=imgLink[adNum];

       jumpTarget='_blank';

       if (jumpUrl != ''){

              if (jumpTarget != '')

                     window.open(jumpUrl,jumpTarget);

              else

                     location.href=jumpUrl;

       }

}

</script>

<a href="javascript:goUrl()"><img style="FILTER: revealTrans(duration=2,transition=20);border-color:black;color:#000000" src="javascript:nextAd()" width=258 height=230 border=1 class=b1 name=imgInit></a>

<!-- 动态图l束 -->




chenguo 2007-07-05 11:53 发表评论
]]>
js焦点囄轮换--几个实例http://www.tkk7.com/cgogg/articles/128292.htmlchenguochenguoThu, 05 Jul 2007 03:37:00 GMThttp://www.tkk7.com/cgogg/articles/128292.htmlhttp://www.tkk7.com/cgogg/comments/128292.htmlhttp://www.tkk7.com/cgogg/articles/128292.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/128292.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/128292.html             <!--焦点囑ּ?->
    <SCRIPT type=text/javascript>
        var focus_width=290
        var focus_height=170
        var text_height=20
        var swf_height = focus_height+text_height
        
        var pics=‘1.jpg|2.jpg|3.jsp|4.jpg|5.jpg|‘;                                                                 
        var links='index.php|http://auto.qq.com/a/20051029/000009.htm|';
        var texts='靛蓝走过花季的梦q|忧郁因ؓ思念的凝滞|偶尔的童心盛开烂O|更多时候一个h独处|一直在旁的亲密伴G';
        document.write('<object ID="focus_flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'">');
        document.write('<param name="allowScriptAccess" value="sameDomain"><param name="movie" value="http://auto.qq.com/flash/playswf.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF">');
        document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
        document.write('<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'">');
        document.write('<embed ID="focus_flash" src="playswf.swf" wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'" menu="false" bgcolor="#C5C5C5" quality="high" width="'+ focus_width +'" height="'+ swf_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
        document.write('</object>');
       
        //-->
        </SCRIPT>

下面是falsh文gQ?object xcodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" height="200" width="200" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
一些好的下载链接:http://blog.csdn.net/suilam/archive/2005/12/15/553280.aspx
lash轮播q告
http://bbs.blueidea.com/viewthread.php?tid=2374504&page=
[下蝲]l典代码一ơ全下蝲Q?flashqȝ片,囄qȝ片都有)
http://bbs.powereasy.net/dispbbs.asp?boardID=28&ID=290178&page=10
箭? class= 韩国flash焦点大图q告代码 / / 2007-06-24
http://www.zcool.com.cn/jscode/ggcode/page_2.html
 


chenguo 2007-07-05 11:37 发表评论
]]>
ajax框架http://www.tkk7.com/cgogg/articles/128157.htmlchenguochenguoWed, 04 Jul 2007 09:58:00 GMThttp://www.tkk7.com/cgogg/articles/128157.htmlhttp://www.tkk7.com/cgogg/comments/128157.htmlhttp://www.tkk7.com/cgogg/articles/128157.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/128157.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/128157.htmlvar request =false;

function createXMLHttpRequest() {
        request = false;
        
        if(window.XMLHttpRequest) {
            request = new XMLHttpRequest();
            if(request.overrideMimeType) {
                request.overrideMimeType('text/xml');
            }
        } else if(window.ActiveXObject) {
            var versions =
            ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',        'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
            for(var i=0; i<versions.length; i++) {
                try {
                    request = new ActiveXObject(versions[i]);
                    if(request) {
                        return request;
                    }
                } catch(e) {
                    //alert(e.message);
                }
            }
        }
        alert("1");
       
        if (!request) { // 异常Q创建对象实例失?br>            window.alert("不能创徏XMLHttpRequest对象实例.");
            return false;
        }
        return request;
    }

function ajaxpost(targetUrl,sendString,resultHandle){
   
    request = createXMLHttpRequest();

    request.onreadystatechange = resultHandle;

    request.open("post",targetUrl);   
   

    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Content-length", sendString.length);
    request.setRequestHeader("Connection","close");

    request.send(sendString);

}

function ajaxget(targetUrl,resultHandle){
   
    request = createXMLHttpRequest();

    request.onreadystatechange = resultHandle;

    request.open("get",targetUrl);   

    request.send(null);

}


//处理l果
function handle(){
if (request.readyState == 4) {
         if (request.status == 200) {
            //alert(request.responseText);
            var result = request.responseText;
            document.getElementById('welcome').style.display="";
            document.getElementById('user').style.display="";
            document.getElementById('loginform').style.display="none";
            document.getElementById('user').innerHTML = result;           
         } else {
            alert('There was a problem with the request.');
         }
      }

}




//调用
function check(){

var tartgeUrl="login.php";
var params ="username=" + encodeURI( document.getElementById("username").value ) +"&password=" + encodeURI( document.getElementById("password").value );
alert("start"+params);
ajaxpost(tartgeUrl,params,handle);
}
 


chenguo 2007-07-04 17:58 发表评论
]]>
DHTML应用开?/title><link>http://www.tkk7.com/cgogg/articles/127810.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Tue, 03 Jul 2007 04:38:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/127810.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/127810.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/127810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/127810.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/127810.html</trackback:ping><description><![CDATA[本文介绍了IE和Navigator两种览器对DHTML标准实现的差异,特别是如何编写Navigator中运行的DHTMLE序? <br> <br> <br>  DHTML(Dynamic HTML)是W3Cl织提出的一U新的规范,它对原有的HTML做了许多扩充Qƈl合JavascriptQ得静态的HTML面产生了许多动态效果, 例如菜单的展开和收P面元素的外观动态改变等。IE 4.0以上QNavigator 4.0以上的版本都支持q个标准。但是,不同的浏览器厂家对它都做了不同程度的扩充。以最行IE的和NSZQIE的实现更接近于W3C的方案,? NSQ说实话Q与W3C的方案差异很大,而且q没有完全实玎ͼ甚至可以说是另一套方案。笔者在初识DHTMLӞ按照书上讲的~写了几个小E序Q在IE? 一试就通,而在NS上可以说费尽了周折才逐渐扑ֈ解决Ҏ。由于市面上很少有讲qNS的DHTML实现Ҏ的书(大概NS׃的实CW合标准)Q而真? 的商业网站至应同时支持IE和NSq两U主要的览器,我愿意把我的一些心得写出来与大家共享,使大家不必再走我走过的弯路。对于二者的实现相同的部 分,本文作一略介l,您若有兴可参考有关书c或|上资源?<br> <br> <br>  DHTML实际上由三两部分l成QCSS(Cascade Style SheetQ联样式表)Q层(Layer)和Javascript? <br> <br> <br>  所谓CSSQ概念上cM于C++中的c,在类定义中指明元素的外观样式Q如字体Q颜Ԍ大小{等Q页面中的Q何一个HTML元素如被指定属于 q个c,p动拥有该cȝҎ;q可以ؓ某种HTML元素定义样式Q这样页面中的所有这U元素都有了同样的外观。如果将q样的样式定义存在一个单独的. css文g?pC++那样类定义存在 .h文g?Q再在页面中其包含q来Q则一个网站的所有页面就有了同样的外观。IE和NS对CSS的实现基本相同,在此׃再详l介l了?<br> <br> <br>  两者的差异主要体现在层的实C。所谓层Q就是页面上的一块区域,其中可以包含M的HTML元素Q通过改变层的属性,光的元素可以跟着? 玎ͼ消失Q更改,Ud{? 在IE中,层依?lt;DIV></DIV>?lt;SPAN></SPAN>来实玎ͼ两者基本相同,通常 <DIV>用于较大的层Q?lt;SPAN>用于较小的层Qƈ?lt;DIV>在实现的层后面加上一个回车换行,?lt; SPAN>不加。它的语法如?二者相?Q?<br> <br> <br>  <div id=layername style="style definition">Layer content</div> ? <br> <br> <br>  <div id=layername class="classname">Layer content</div> <br> <br> <br>  其中style definition是一l有分号隔开的样式定义,常用的有以下几种Q? <br> <br> <br>  positionQ其值可以ؓabsolute和relativeQ所谓absolute(l对定位)Q就是层的内容不必按照出现的先后ơ序 在浏览器上依ơ排列,而是可以像素为单位定位到览器用户区域的L位置Q而relative(相对定位)则是层按照相ȝ内容依次排列?<br> <br> <br>  leftQtopQwidthQheightQ指层的左上角坐标以及它的宽度和高度? <br> <br> <br>  z-indexQ由于层可以被放|在面的Q何位|,当它与其它内定w合时Qz-index值大的显C在上面Q所有层的z-indexgؓ 1。但是在NS中,所有的表单元素(文本框,列表框,按钮{?Q只要是可见的就无法被遮住,而无论z-index值是多少。因此在设计面Ӟ要注意不? 使动态出现或隐藏的元?例如弹出式菜?的位|上攄表单元素?<br> <br> <br>  VisibilityQ指明层是否可见Q通过在程序中动态改变这个|可以实现层的出现和消失,比如下拉菜单p依靠它来实现。它的三个候? gؓQinheritQ可见性与父元素的可见性相同;visibleQ可?在NS中是show)QhiddenQ不可见(在NS中是hide)?<br> <br> <br>  NS同样支持q两个标讎ͼ但是支持得很不好Q经常出C些莫名其妙的错误Q我惌可能是出于策略上的考虑Q而不见得是NS的品质量不好? NS引入了另两个标记Q?lt;layer>?lt;ilayer>Q?lt;layer>用于l对定位Q?lt; ilayer>用于相对定位Q因此在q两个标记的样式定义中没有position属性?<br> <br> <br>  两个览器对层的不同实现体现在以下几点: <br> <br> <br>  1. 层的引用。在IE中,面上的每个可编E元?不仅是层Q还包括其它M指明了ID值的元素Q详见下?都是document.all集合的一;而在 NS中,面中每个层Q无论是用上面四个标C的哪个定义的Q也无论是绝Ҏ是相对定位,都是document.layers集合的一V因此,若想引用 名ؓlayer1的层Q应以如下语法: <br> <br> <br>  IEQdocument.all["layer1"]或document.all.layer1 <br> <br> <br>  NSQdocument.layers["layer1"]或document.layers.layer1 <br> <br> <br>  2. 层的坐标和大。在IE中,每个涉及层的外观的属性,如位|,大小Q颜色等Q都是层的style属性集合的以一,如层的左上角x坐标? document.all.layer1.style.pixelLeftQy坐标? document.all.layer1.style.pixelTopQ宽度ؓ document.all.layer1.style.pixelWidthQ高度ؓ document.all.layer1.style.pixelHeight。还有几l属性如scrollxxxQoffsetxxxQ? clientxxxQ其中xxx为LeftQTopQWidthQHeight Q分别描q层的滚动,位移Q客户区{属性,详见MSDN中关于坐标的描述。而在NS中,每个层都有一个clip属性集QxQyQwidthQheight 是这个集的集合元素?<br> <br> <br>  另外QIE中所有元素拥有同一个坐标系Q无论它位于层外或层内;在NS中,每个层都有一个独立的坐标pR? <br> <br> <br>  3. 层的内容。IE中的层包含innerHTML和outerHTML属?׃q描述层的外观Q所以它们不是style属性集的元素,而是层的属?Q其含义如下Q? <br> <br> <br>  innerHTMLQ层中的HTML代码Q但是不包括层的定义? <br> <br> <br>  outerHTMLQ层中的HTML代码Q且包括层的定义? <br> <br> <br>  改变q些属性值就可以改变层的内容Q如下语句改变层layer1的内容ؓ加粗的字W串"layer1"Q? document.all.layer1.innerHTML=”<b>layer1</b>” Q而在NS中,每一个document.layers集合中的元素Q即一个层Q都NS被视Z个独立的H口Q有独立document属性,p Javascript中的document属性一P通过调用document.write函数Q可以动态改变层的内宏V上例在NS中应修改为: <br> <br> <br>  document.layers.layer1.document.open(); <br> <br> <br>  doucment.layers.layer1.write("<div><b>layer1</b></div>"); <br> <br> <br>  document.layers.layer1.document.close; <br> <br> <br>  同样Q对于层中的其它可编E元素,例如图象Q其引用语法如下Q? document.layers.layer1.document.images[imgname]Q而如果该图象位于层的外面Q其语法应ؓ document.images[imgname]Q而在IE中,无论图象位于层内或层外,其语法都是后者?<br> <br> <br>  Javascript是Netscape公司首先提出的一U客L~程的脚本语aQ随后有扩展到服务器端。它的语法和概念都类gC++Q但 是没有C++那样严格。IE同样支持客户端Javascript(微Yq推ZcM的,功能更强大的VbscriptQ但是NS却不支持)。两U浏览器? Javascript的基本实现是一LQ但是又都对它做了许多不同的扩展Q而在DHTML~程中,很多情况下都需要用到这些扩展。由于此时已l没有标? 可遵循,二者已l看不出有相同之处。例如,览器的客户区的宽度Q在IE中是document.body.clientWidthQ在NS中是 window.innerWidthQ再比如你想知道用户按浏览器的滚动条滚动了多像素,在IE中是document.body.scrollTopQ? 在NS中是window.pageYOffset。在q种情况下,你只能查阅二者的文档。IE的Javascript文档包含在MSDN中,也可以到微Y 的站点上单独下蝲。NS的Javascript文档可以? http://developer.netscape.com上下载,那里也能得到NS的DHTML文档?<br> <br> <br>  NS没有实现的功能? <br> <br> <br>  1.IE中,面中的M元素都是可编E的Q只要赋予它ID属性,其语法如下: <br> <br> <br>  <div id=itemid>content</div>?lt;span id=itemid>content</span> <br> <br> <br>  而在NS中,除非元素位于层中Q否则无法对它编E? <br> <br> <br>  2.IE中增M元素的渐?Transition)和o?Filter)效果QNS中没有? <br> <br> <br>  3.IE中支持客L的数据绑?Data bind)Q即面中的某个元素(例如表格中的一个格)可以与服务器端的数据库的某个字段l定Q在数据内容不变的情况下Q可以不必再ơ访问数据库而改变页面的形式(例如按某个字D重新排?。NS同样没有实现q种Ҏ? <br> <br> <br>  以上列D了二者的如此之多的差别,那我们如何编写跨览器的DHTML面呢?一U方法是~写两个独立的页面,而在入口文g中根据浏览器的不同而重定向C同的面Q如Q? <br> <br> <br>  <HTML><BODY> <br> <br> <br>  <Script Language="Javascript"> <br> <br> <br>  isNS=(navigator.appName=="Netscape"); <br> <br> <br>  if (isNS) <br> <br> <br>   window.location="ns.html"; <br> <br> <br>  else <br> <br> <br>   window.location="ie.html"; <br> <br> <br>  </Script> <br> <br> <br>  </BODY></HTML> <br> <br> <br>  q种Ҏ单,面整洁Q缺Ҏ有很大冗余,毕竟一个页面中E序是少量的Q大部分静态内容在两个览器中q没有区别,一旦静态的内容发生改变必须在两个页面中一h改,而且当包含DHTML的页面增多时Q每一个页面都需要三个页面来实现Q增大了l护的负担? <br> <br> <br>  另一U方法是在同一个页面中集成两个览器的代码。在每一个实现特定功能的函数中都Ҏ览器的不同分别写代码,如: <br> <br> <br>  <HTML><BODY> <br> <br> <br>  <Script Language="Javascript"> <br> <br> <br>  isNS=(navigator.appName=="Netscape"); <br> <br> <br>  function fun1(){ <br> <br> <br>  if (isNS) <br> <br> <br>   //NS codes here <br> <br> <br>  else <br> <br> <br>   //IE codes here <br> <br> <br>  } <br> <br>  </Script> <br> <br>  </BODY></HTML> <br> <br>  对于HTML代码也不同的部分Q可以利用Javascript函数 document.writeln()来实玎ͼ例如对于层的定义Q可以如下实玎ͼ <br> <br>  <Script Language="Javascript"> <br> <br>   if(isNS) <br> <br>   document.writeln("<layer id=\"layer1\" left=20 top=30 width=40 height=50 z-index=2>"); <br> <br>   else <br> <br>   document.writeln("<div id=\"layer1\" style=\"position:absolute;left:20;top:30;width:40;height:50;z-index:2\">"); <br> <br>  </Script> <br> <br>  Layer content here <br> <br>  <Script Language="Javascript"> <br> <br>   if(isNS) <br> <br>   document.writeln("</layer>"); <br> <br>   else <br> <br>   document.writeln("</div>"); <br> <br> <br>  </Script> <br> <br>  q种实现Ҏl护单,~点是失M面~辑器所见即所得的Ҏ?因ؓ只有到运行时才能层的定义写入浏览器Q在~辑阶段它们只是? JavascriptE序)Q调整层的坐标和大小都比较困难。在实际~程中可以先按一U浏览器的定义写Q待调整完毕后再它转成另一U定义。但ȝ来说Q? q种办法适合对HTML标准比较熟悉的开发h员? <br><img src ="http://www.tkk7.com/cgogg/aggbug/127810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-07-03 12:38 <a href="http://www.tkk7.com/cgogg/articles/127810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>下拉菜单全攻?JavaScript?/title><link>http://www.tkk7.com/cgogg/articles/127807.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Tue, 03 Jul 2007 04:29:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/127807.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/127807.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/127807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/127807.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/127807.html</trackback:ping><description><![CDATA[自适应分L率可扩展二层JS下拉菜单 <br> <br>序言Q? <br> <br>随着互联|的普及和网制作技术的发展Q越来越多的|友开始制作自q|站。做为网站最重要的部分—导航菜单也出现了各式各L设计和制作方法? 其中下拉式导航菜单已l成为多栏目大信息量|站的首选导航方式。那么,在下面我简单介l一下众多下拉菜单制作方法中完全使用JS自动生成?#8220;自适应分L 率可扩展二层JS下拉菜单”的工作原理和使用Ҏ? <br> <br>1?S下拉菜单原理 <br> <br>下拉菜单实际上就是在开始的时候显CZU或者说是主菜单Q图一Q。当触发条gQ例如:鼠标UdC面时Q显C次U菜单(图二Q? <br> <br>图一 <br> <br> <br>图二 <br> <br> <br>那么如何实现q样的效果呢。其实很单。所有的下拉菜单都是通过囑ֱ的显隐来实现的。在文g下蝲的时候,其实主菜单和ơ菜单都以lŞ成或者说? 载到了客L也就是你的机器里。只是次U菜单被隐藏h。隐藏的Ҏ一般是使用javascript 配合css控制ơ菜单的图层的属性visibility为隐? <br>。所以在开始的使用你是看不见次U菜单的。当满触发条gQ例如:鼠标UdC面)Ӟ在用javascript来控制次U菜单显C。当在次满触发条gӞ例如Q鼠标移开Q,控制ơ菜单隐藏? <br> <br>我们现在讲的q个” 自适应分L率可扩展二层JS下拉菜单”可以自动适应览器分辨率的改变始l保持相对位|。可以方便的自己定制菜单昄内容及连接页面。可以随意扩充主D和次D的栏目个数。可以自由改变连接和D表格的样式和外观{等? <br> <br>2?自适应分L率可扩展二层JS下拉菜单"js代码详解 <br> <br> <br>//--------------- d航条内容 ------------// <br>var mainLayer=new Array("蓝色理想","动意营?);//d航栏? <br> <br>//--------------- ơ导航条内容 ------------// <br>var subLayer0=new Array("论坛","文献"); //D栏目一下的ơ栏目 <br>var subLayerHttp0=new Array("#","#");’’;//d航栏目一下的ơ栏目q接地址 <br>var subLayer1=new Array("论坛","文献");//D栏目二的ơ栏目 <br>var subLayerHttp1=new Array("#","#");//d航栏目二的次U栏目连接地址 <br> <br> <br> <br>//--------------- d航条Table参数调整 ------------// <br>var mainTableTdWidth=100; //每个TD的宽度,调整d航内定w? <br>var mainTableBorder=0; //调整d航表D框宽? <br>var mainTableCellspacing=0; //调整d航表格Cellspacing <br>var mainTableCellpadding=1; //调整d航表格Cellpadding <br>var mainTableBgcolor="#000000"; //调整d航表D景色 <br>var mainTableBordercolor=""; //调整d航表格编框颜? <br>var mainTableBackgroundImg=""; //调整d航表D景图片url地址 <br>var hrefClassName="link" //调整url风格样式 <br>var mainTableTdBgcolor="B2CBCF"; //调整d航表格Td? <br> <br>//--------------- ơ导航条Table参数调整 ------------// <br>var subTableBorder=0; //调整ơ导航条表格Ҏ宽度 <br>var subTableCellspacing=0; //调整ơ导航条表格Cellspacing <br>var subTableCellpadding=1; //调整ơ导航条表格Cellpadding <br>var subTableBgcolor="#000000"; //调整ơ导航条表格背景? <br>var subTableBordercolor=""; //ơ导航条表格~框颜色 <br>var subTableBackgroundImg=""; //ơ导航条表格背景囄url地址 <br>var subTableTdBgcolor="B2CBCF"; //调整ơ导航表格Td? <br>var sbuTabbleTop=21; //ơ导航表g下微? <br>var sbuTabbleLeft=-1; //ơ导航表格左叛_? <br> <br>//--------------- pȝ参数*请勿调整 ------------// <br>var layerMax=mainLayer.length+10; <br>var layerName=”index” <br> <br>//--------------- 生成下拉菜单 ------------// <br>function createMainLayer(){ <br>document.write(" <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div class="hrnjrdn" id="wall" onmouseout="layervib('visible','"+layerMax+"')" style="position: relative; left: 0px; top: 0px; width: 100%; z-index: 1;">"); <br>for(i=0;i<mainlayer.length;i++){><br>document.write("</mainlayer.length;i++){>"); <br>} <br>document.write(" <table background=""+mainTableBackgroundImg+"" bgcolor="#0000b0" border="1" bordercolor="#0000b0" cellpadding=""+mainTableCellpadding+"" cellspacing=""+mainTableCellpadding+"" width=""> <tbody> <tr> <td class=""+hrefClassName+"" onmouseover="layervib('visible','"+i+"')" bgcolor="#0000b0" width=""+mainTableTdWidth+""> <a href="http://www.6to23.com/s15/s15d1/s15d1d6/s15d1d6d5/s15d1d6d5d5/200291613567.htm#">"+mainLayer[i]+"</a></td> </tr> </tbody> </table> "); <br> <br>for(j=0;j<mainlayer.length;j++){><br>createSubLayer(j); <br>} <br>document.write("</mainlayer.length;j++){></div> </td> </tr> </tbody> </table> "); <br>} <br> <br> <br>//--------------- 生成每项下拉菜单内容 ------------// <br>function createSubLayer(num){ <br>var subLayerName= layerName +num; <br>var subLayerLeft=(mainTableTdWidth*num)+mainTableCellpadding+mainTableBorder; <br>var subLayerList=eval("subLayer"+num); <br>var subLayerHttpList=eval("subLayerHttp"+num); <br>document.write(" <div class="ndbzhjt" id=""+subLayerName+"" style="position: absolute; z-index: 2; height: 24px; visibility: hidden;" onmouseover="layervib('visible','"+num+"')" onmouseout="layervib('visible','"+layerMax+"')">"); <br>if(subLayerList.length!=0){ <br>document.write("<br>for(h=0;h<sublayerlist.length;h++){><br> <br>document.write("</sublayerlist.length;h++){>"); <br>} <br>document.write(" <table )="" background=""+subTableBackgroundImg+"" bgcolor="#00b00e" border="1" bordercolor="#00b00e" cellpadding=""+subTableCellpadding+"" cellspacing=""+subTableCellpadding+"" width="100"> <tbody> <tr> <td class="link" bgcolor="#00b00e" width="100%"> <a href="http://www.6to23.com/s15/s15d1/s15d1d6/s15d1d6d5/s15d1d6d5d5/%22+%20subLayerHttpList%20%5Bh%5D+%22" class="link">"+subLayerList[h]+"</a> </td> </tr> </tbody> </table> "); <br>} <br>document.write("</div> "); <br> <br>} <br> <br>//------------------------------ơ菜单显隐控?-------------------------// <br>function layervib(type,num){ <br>var H=type; <br>var temp=(H='visible'?'hidden':'visible') <br>for(var i=0;i<mainlayer.length;i++){><br>var E=eval('document.all.index'+i+'.style'); <br>var H=eval(i); <br>if(i==num){E.visibility=type}else{E.visibility=temp}; <br>} <br>} <br> <br>3?自适应分L率可扩展二层JS下拉菜单"js代码使用Ҏ? <br> <br>(1) 上面的代码存储为js_daohang.js.攑֜和调用的面同一个目录下? <br>(2) 在需要用的叉中在如下位置d<script language="javascript" src="http://www.6to23.com/s15/s15d1/s15d1d6/s15d1d6d5/s15d1d6d5d5/js_daohang.js"> <br> <br><html> <br><head> <br> <title>q_证券柜台pȝ...



Q?Q在需要显CZ拉菜单的地方使用

来生菜单。如下例。可以随意摆攑ֈ面的Q何位|?






 


(4)、如何添加新的主菜单及次U菜单的栏目?
假设我们要在已有的栏目里新增加一?#8220;七色?#8221;栏目。下面有“论坛”?#8220;文献”两个ơ栏目。那么我么首先要在代码的如下部分d“七色?#8221;?

var mainLayer=new Array("蓝色理想","动意营?,”七色?#8221;);//d航栏?
0 1 2

然后在如下的位置d“论坛”?#8220;文献”栏目及连接地址?

var subLayer0=new Array("论坛","文献"); //D栏目一下的ơ栏目
var subLayerHttp0=new Array("#","#");’’;//d航栏目一下的ơ栏目q接地址
var subLayer1=new Array("论坛","文献");//D栏目二的ơ栏目
var subLayerHttp1=new Array("#","#");//d航栏目二的次U栏目连接地址
var subLayer2=new Array("论坛","文献");//D栏目三的ơ栏目
var subLayerHttp2=new Array("#","#");//d航栏目三的次U栏目连接地址

注意Q蓝色部分是需要新d的部分。红色部分是要修改的部分。要和上面的~号一一对应?(5)、其他细节调整请参考代码详解部分?

4、附注及扩充?

代码中主要用的函数及方法详解?
Document.write(“tmp”)在页面中写入tmp.
var subLayerHttp1=new Array();定义一个新的数lsubLayerHttp1.
For(I=0;I
var temp=(H=???:?)当H的值等于?的时候temp{于?。反之temp的值等于??

增强功能?
//--------------- pȝ参数*请勿调整 ------------//
var layerMax=mainLayer.length+10;
var layerName=”index”

可以讄layerName=其他字段以生成新的下拉菜单。ə面内共存两个下拉菜单?

如有M问题误pL。Jiangyf@paic.com.cn

全文完?


chenguo 2007-07-03 12:29 发表评论
]]>
JavaScript[对象.属性]集锦http://www.tkk7.com/cgogg/articles/127803.htmlchenguochenguoTue, 03 Jul 2007 04:15:00 GMThttp://www.tkk7.com/cgogg/articles/127803.htmlhttp://www.tkk7.com/cgogg/comments/127803.htmlhttp://www.tkk7.com/cgogg/articles/127803.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/127803.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/127803.htmlSCRIPT 标记

用于包含JavaScript代码.

语法

属?

LANGUAGE 定义脚本语言

SRC 定义一个URL用以指定?JSl尾的文?


windows对象


每个HTML文档的顶层对?

属?

frames[] 子桢数组.每个子桢数组按源文档中定义的序存放.

feames.length 子桢个数.

self 当前H口.

parent 父窗?当前H口是中一个子H口).

top 层H口(是所有可见窗口的父窗?.

status 览器状态窗口上的消?

defaultStatus 当status无效?出现在浏览器状态窗口上的缺省消?

name 内部?为由window.open()Ҏ打开的窗口定义的名字.


Ҏ

alert("message") 昄含有l定消息?JavaScript Alert"对话?

confirm("message") 昄含有l定消息?Confirm"对话?有一个OK按钮和一个Cancel按钮).如果用户单击OKq回true,否则q回false.

prompt("message") 昄一?prompt"对话?要求用户Ҏ昄消息l予相应输入.

open("URL","name") 打开一个新H口,l予一个指定的名字.

close() 关闭当前H口.


frame对象


它是整个览器窗口的子窗?除了status,defaultStatus,name属性外,它拥有window对象的全部属?


location对象


含有当前URL的信?

属?

href 整个URL字符?

protocol 含有URLW一部分的字W串,如http:

host 包含有URL中主机名:端口号部分的字符??/www.cenpok.net/server/

hostname 包含URL中主机名的字W串.如http://www.cenpok.net

port 包含URL中可能存在的端口号字W串.

pathname URL?/"以后的部?如~list/index.htm

hash "#"?CGI参数)之后的字W串.

search "?"?CGI参数)之后的字W串.


document对象

含有当前文档信息的对?

属?

title 当前文档标题,如果未定?则包?Untitled".

location 文档的全URL.

lastModified 含有文档最后修Ҏ?

referrer 调用者URL,即用h从哪个URL链接到当前页面的.

bgColor 背景?#xxxxxx)

fgColor 前景文本颜色.

linkColor 链接颜?

vlinkColor 讉Kq的链颜色.

alinkColor Ȁz链颜色(鼠标按住未放?.

forms[] 文档中form对象的数l?按定义次序存?

forms.length 文档中的form对象数目.

links[] 与文档中所有HREF铑֯应的数组对象,按次序定义存?

links.length 文档中HREF铄数目.

anchors[] ?...)数组,按次序定义存?

anchors.length 文档中锚的数?


Ҏ

write("string") 字W串H出l当前窗?(字符串可以含有HTML标记)

writeln("string") 与write()cM,在结追加回车符,只在预定格式文本?

...
?
...
)生效.

clear() 清当前窗?

close() 关闭当前H口.


form对象


属?/strong>

name

中的NAME属性的字符串?

method 中METHOD属性的cd?"0"="GET" ,"1"="POST" .

action 中ACTION属性的字符串?

target 表格数据提交的目?与标C相应属性一?

elements[index] elements属性包含form中的各个元素.

length 表格中的元素个数.


Ҏ

submit() 提交表格.

事g处理器onSubmit() 用户单击一个定义好的按钮提交form时运行的代码.


text和textarea对象

属?

name NAME属性的字符串?

value 域内容的字符串?

defaultValue 域内容的初始字符串?


Ҏ

focus() 讄对象输入焦点.

blur() 从对象上U走输入焦点.

select() 选定对象的输入区?


事g处理?/strong>

onFocus 当输入焦点进入时执行.

onBlur 当域失去焦点时执?

onSelect 当域中有部分文本被选定时执?

onChange 当域失去焦点且域值相对于onFocus执行有所改变时执?


chenguo 2007-07-03 12:15 发表评论
]]>
XmlHttp实现无刷C联动下拉?/title><link>http://www.tkk7.com/cgogg/articles/125331.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:33:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/125331.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/125331.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/125331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/125331.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/125331.html</trackback:ping><description><![CDATA[     摘要: XmlHttp实现无刷C联动下拉? 1.html代码 <HTML>    <HEAD>        <title>XmlHttp实现无刷C联动下拉?lt;/title>    &...  <a href='http://www.tkk7.com/cgogg/articles/125331.html'>阅读全文</a><img src ="http://www.tkk7.com/cgogg/aggbug/125331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:33 <a href="http://www.tkk7.com/cgogg/articles/125331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax.NET的几个示例代?/title><link>http://www.tkk7.com/cgogg/articles/125325.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:27:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/125325.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/125325.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/125325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/125325.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/125325.html</trackback:ping><description><![CDATA[<div id="txnpdjr" class="postText"> <img alt="" src="http://www.cnblogs.com/images/cnblogs_com/singlepine/Ajax.NET.JPG" border="0"><br><br>源代码下?a >/Files/singlepine/AJAXDemo.rar</a> </div> <br><img src ="http://www.tkk7.com/cgogg/aggbug/125325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:27 <a href="http://www.tkk7.com/cgogg/articles/125325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax使用初步http://www.tkk7.com/cgogg/articles/125326.htmlchenguochenguoWed, 20 Jun 2007 05:27:00 GMThttp://www.tkk7.com/cgogg/articles/125326.htmlhttp://www.tkk7.com/cgogg/comments/125326.htmlhttp://www.tkk7.com/cgogg/articles/125326.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/125326.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/125326.html Ajax使用初步

 Ajax定义?#8220;Asynchronous JavaScript + XML”的简Uͼ也就是异步的JavaScript和XML处理。从原理上看Q主要是Ajax可以通过调用HttpRequest实现与服务器的异步通讯Qƈ最l在|页中实C富友好的用户界面
Ajax使用初步Q配|步?br>1.把Ajax.dll copy到应用系lbin目录下,然后在工E引用中引用Ajax.dllQ如果没有的话可以下?a >/Files/singlepine/Ajax.rar
2.配置web.configQ添加如下信?/font>

<httpHandlers>
  <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
3.假设应用pȝ叫DocumentQ目录格式ؓPages\AjaxTest
4.在Pages\AjaxTest下徏立cs文gAjaxMethod.csQ添加如下方?/font>
//[Ajax.AjaxMethod]
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public static string GetNIVNumber(string str)
{
 return str;
}
5.在Pages\AjaxTest下徏立页面AjaxForm.aspx
<HTML>
 <HEAD>
  <title>AjaxForm</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  <script language="javascript">
  function testAjax()
  {
   var first=document.getElementById("txtfirst");
   AjaxMethod.GetNIVNumber(first.value,callback_GetNIVNumber);
  }
  function callback_GetNIVNumber(res)
  {
   var obj=document.getElementById("txtsecond");   
   obj.value=res.value;    
  }
  </script>
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <INPUT style="Z-INDEX: 101; LEFT: 208px; POSITION: absolute; TOP: 40px" type="button" value="Button"
    onclick="testAjax();">
   <asp:TextBox id="txtfirst" style="Z-INDEX: 102; LEFT: 40px; POSITION: absolute; TOP: 40px" runat="server"></asp:TextBox>
   <asp:TextBox id="txtsecond" style="Z-INDEX: 103; LEFT: 40px; POSITION: absolute; TOP: 72px" runat="server"></asp:TextBox>
  </form>
 </body>
</HTML>
protected System.Web.UI.WebControls.TextBox txtfirst;
protected System.Web.UI.WebControls.TextBox txtsecond;
private void Page_Load(object sender, System.EventArgs e)
{
 //注册,其中Document.Pages.AjaxTest.AjaxMethod为AjaxMethod.csҎ所在的命名I间
 Ajax.Utility.RegisterTypeForAjax(typeof(Document.Pages.AjaxTest.AjaxMethod));
}
然后q行可以了Q?br>实现效果Q在W一个textbox中输入内容,点击buttonQ就把内ҎC到W二textbox中。这只是一个简单的CZQ还可以修改调用ҎQ从数据库读取以及更复杂的操?/font>



chenguo 2007-06-20 13:27 发表评论
]]>
Ajax单示例之改变下拉框动态生成表?/title><link>http://www.tkk7.com/cgogg/articles/125324.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:26:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/125324.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/125324.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/125324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/125324.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/125324.html</trackback:ping><description><![CDATA[<div id="jhbprbr" class="postTitle"> <a id="viewpost1_TitleUrl" >Ajax单示例之改变下拉框动态生成表?/a> </div> <div id="vnzvhpf" class="postText"> <img alt="" src="http://www.cnblogs.com/images/cnblogs_com/singlepine/ajaxgrid.JPG" border="0"><br><br>1.建立一个aspx面Qhtml代码<br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><html xmlns="http://www.w3.org/1999/xhtml" ><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><head runat="server"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    <title>Untitled Page</title><br><img id="Codehighlighter1_135_1222_Open_Image" onclick="this.style.display='none'; codehighlighter1_135_1222_open_text.style.display="'none';" codehighlighter1_135_1222_closed_image.style.display="'inline';" codehighlighter1_135_1222_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_135_1222_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_135_1222_closed_text.style.display="'none';" codehighlighter1_135_1222_open_image.style.display="'inline';" codehighlighter1_135_1222_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">    <script type="text/javascript"><img src="http://www.cnblogs.com/Images/dot.gif"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        var xmlHttp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        function createXMLHttpRequest() <br><img id="Codehighlighter1_207_472_Open_Image" onclick="this.style.display='none'; codehighlighter1_207_472_open_text.style.display="'none';" codehighlighter1_207_472_closed_image.style.display="'inline';" codehighlighter1_207_472_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_207_472_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_207_472_closed_text.style.display="'none';" codehighlighter1_207_472_open_image.style.display="'inline';" codehighlighter1_207_472_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            if (window.ActiveXObject) <br><img id="Codehighlighter1_260_340_Open_Image" onclick="this.style.display='none'; codehighlighter1_260_340_open_text.style.display="'none';" codehighlighter1_260_340_closed_image.style.display="'inline';" codehighlighter1_260_340_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_260_340_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_260_340_closed_text.style.display="'none';" codehighlighter1_260_340_open_image.style.display="'inline';" codehighlighter1_260_340_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            } <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            else if (window.XMLHttpRequest) <br><img id="Codehighlighter1_400_462_Open_Image" onclick="this.style.display='none'; codehighlighter1_400_462_open_text.style.display="'none';" codehighlighter1_400_462_closed_image.style.display="'inline';" codehighlighter1_400_462_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_400_462_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_400_462_closed_text.style.display="'none';" codehighlighter1_400_462_open_image.style.display="'inline';" codehighlighter1_400_462_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                xmlHttp = new XMLHttpRequest();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        function startRequest() <br><img id="Codehighlighter1_528_842_Open_Image" onclick="this.style.display='none'; codehighlighter1_528_842_open_text.style.display="'none';" codehighlighter1_528_842_closed_image.style.display="'inline';" codehighlighter1_528_842_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_528_842_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_528_842_closed_text.style.display="'none';" codehighlighter1_528_842_open_image.style.display="'inline';" codehighlighter1_528_842_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            //debugger;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            var ProvinceID=document.getElementById("DropDownList1");           <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            createXMLHttpRequest();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            xmlHttp.onreadystatechange = handleStateChange;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            xmlHttp.open("GET", "?ProvinceID="+ProvinceID.value, true);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            xmlHttp.send(null);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        function handleStateChange() <br><img id="Codehighlighter1_903_1213_Open_Image" onclick="this.style.display='none'; codehighlighter1_903_1213_open_text.style.display="'none';" codehighlighter1_903_1213_closed_image.style.display="'inline';" codehighlighter1_903_1213_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_903_1213_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_903_1213_closed_text.style.display="'none';" codehighlighter1_903_1213_open_image.style.display="'inline';" codehighlighter1_903_1213_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            if(xmlHttp.readyState == 4) //0(未初始化);1(正在装蝲);2 (装蝲完毕);3 (交互?;4 (完成) <br><img id="Codehighlighter1_1000_1203_Open_Image" onclick="this.style.display='none'; codehighlighter1_1000_1203_open_text.style.display="'none';" codehighlighter1_1000_1203_closed_image.style.display="'inline';" codehighlighter1_1000_1203_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1000_1203_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1000_1203_closed_text.style.display="'none';" codehighlighter1_1000_1203_open_image.style.display="'inline';" codehighlighter1_1000_1203_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                if(xmlHttp.status == 200) //200(OK);404(not found)<br><img id="Codehighlighter1_1085_1189_Open_Image" onclick="this.style.display='none'; codehighlighter1_1085_1189_open_text.style.display="'none';" codehighlighter1_1085_1189_closed_image.style.display="'inline';" codehighlighter1_1085_1189_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1085_1189_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1085_1189_closed_text.style.display="'none';" codehighlighter1_1085_1189_open_image.style.display="'inline';" codehighlighter1_1085_1189_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">                <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                    document.getElementById("gridiv").innerHTML=xmlHttp.responseText;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">                }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">        </script><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"></head><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><body><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    <form id="form1" runat="server"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    <div><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">        <asp:DropDownList ID="DropDownList1" runat="server"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">        </asp:DropDownList>   <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    </div><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    <div id ="gridiv"></div><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    </form><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"></body><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"></html></div> 2.cs代码<br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Data.SqlClient;</div> <br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">protected void Page_Load(object sender, EventArgs e)<br><img id="Codehighlighter1_57_337_Open_Image" onclick="this.style.display='none'; codehighlighter1_57_337_open_text.style.display="'none';" codehighlighter1_57_337_closed_image.style.display="'inline';" codehighlighter1_57_337_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_57_337_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_57_337_closed_text.style.display="'none';" codehighlighter1_57_337_open_image.style.display="'inline';" codehighlighter1_57_337_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">    <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        if (!Page.IsPostBack)<br><img id="Codehighlighter1_97_331_Open_Image" onclick="this.style.display='none'; codehighlighter1_97_331_open_text.style.display="'none';" codehighlighter1_97_331_closed_image.style.display="'inline';" codehighlighter1_97_331_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_97_331_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_97_331_closed_text.style.display="'none';" codehighlighter1_97_331_open_image.style.display="'inline';" codehighlighter1_97_331_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            this.DropDownList1.Attributes.Add("onchange", "return startRequest();");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            ListProvince();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            if (ProvinceID != "")<br><img id="Codehighlighter1_258_321_Open_Image" onclick="this.style.display='none'; codehighlighter1_258_321_open_text.style.display="'none';" codehighlighter1_258_321_closed_image.style.display="'inline';" codehighlighter1_258_321_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_258_321_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_258_321_closed_text.style.display="'none';" codehighlighter1_258_321_open_image.style.display="'inline';" codehighlighter1_258_321_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                GetCityByProvinceID(ProvinceID);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_344_683_Closed_Image" onclick="this.style.display='none'; codehighlighter1_344_683_closed_text.style.display="'none';" codehighlighter1_344_683_open_image.style.display="'inline';" codehighlighter1_344_683_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_344_683_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_344_683_open_text.style.display="'none';" codehighlighter1_344_683_closed_image.style.display="'inline';" codehighlighter1_344_683_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">    property#region property<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">    private string ProvinceID<br><img id="Codehighlighter1_395_668_Open_Image" onclick="this.style.display='none'; codehighlighter1_395_668_open_text.style.display="'none';" codehighlighter1_395_668_closed_image.style.display="'inline';" codehighlighter1_395_668_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_395_668_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_395_668_closed_text.style.display="'none';" codehighlighter1_395_668_open_image.style.display="'inline';" codehighlighter1_395_668_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        get<br><img id="Codehighlighter1_417_662_Open_Image" onclick="this.style.display='none'; codehighlighter1_417_662_open_text.style.display="'none';" codehighlighter1_417_662_closed_image.style.display="'inline';" codehighlighter1_417_662_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_417_662_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_417_662_closed_text.style.display="'none';" codehighlighter1_417_662_open_image.style.display="'inline';" codehighlighter1_417_662_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            if (Request["ProvinceID"] != null && Request["ProvinceID"].ToString() != "")<br><img id="Codehighlighter1_520_580_Open_Image" onclick="this.style.display='none'; codehighlighter1_520_580_open_text.style.display="'none';" codehighlighter1_520_580_closed_image.style.display="'inline';" codehighlighter1_520_580_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_520_580_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_520_580_closed_text.style.display="'none';" codehighlighter1_520_580_open_image.style.display="'inline';" codehighlighter1_520_580_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                return Request["ProvinceID"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            else<br><img id="Codehighlighter1_611_652_Open_Image" onclick="this.style.display='none'; codehighlighter1_611_652_open_text.style.display="'none';" codehighlighter1_611_652_closed_image.style.display="'inline';" codehighlighter1_611_652_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_611_652_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_611_652_closed_text.style.display="'none';" codehighlighter1_611_652_open_image.style.display="'inline';" codehighlighter1_611_652_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                return "";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">    #endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_690_1019_Closed_Image" onclick="this.style.display='none'; codehighlighter1_690_1019_closed_text.style.display="'none';" codehighlighter1_690_1019_open_image.style.display="'inline';" codehighlighter1_690_1019_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_690_1019_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_690_1019_open_text.style.display="'none';" codehighlighter1_690_1019_closed_image.style.display="'inline';" codehighlighter1_690_1019_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">    GetDataSet#region GetDataSet<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">    private DataSet GetDataSet(string sql)<br><img id="Codehighlighter1_756_1004_Open_Image" onclick="this.style.display='none'; codehighlighter1_756_1004_open_text.style.display="'none';" codehighlighter1_756_1004_closed_image.style.display="'inline';" codehighlighter1_756_1004_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_756_1004_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_756_1004_closed_text.style.display="'none';" codehighlighter1_756_1004_open_image.style.display="'inline';" codehighlighter1_756_1004_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        string constring=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        SqlDataAdapter    sda =new SqlDataAdapter(sql,constring);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        DataSet ds=new DataSet();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        sda.Fill(ds);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        return ds;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">    #endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_1026_2399_Closed_Image" onclick="this.style.display='none'; codehighlighter1_1026_2399_closed_text.style.display="'none';" codehighlighter1_1026_2399_open_image.style.display="'inline';" codehighlighter1_1026_2399_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_1026_2399_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1026_2399_open_text.style.display="'none';" codehighlighter1_1026_2399_closed_image.style.display="'inline';" codehighlighter1_1026_2399_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">    GetCityByProvinceID#region GetCityByProvinceID<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">    private void GetCityByProvinceID(string ProvinceID)<br><img id="Codehighlighter1_1114_2384_Open_Image" onclick="this.style.display='none'; codehighlighter1_1114_2384_open_text.style.display="'none';" codehighlighter1_1114_2384_closed_image.style.display="'inline';" codehighlighter1_1114_2384_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1114_2384_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1114_2384_closed_text.style.display="'none';" codehighlighter1_1114_2384_open_image.style.display="'inline';" codehighlighter1_1114_2384_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        string connStr = ConfigurationSettings.AppSettings["ConnectionString"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        SqlConnection conn = new SqlConnection(connStr);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        string sql = "select * from city where father='" + ProvinceID + "'";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        SqlCommand cmd = new SqlCommand(sql, conn);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        conn.Open();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        SqlDataReader dr = cmd.ExecuteReader();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        string s = @"<table cellspacing='0' cellpadding='4' border='0' id='GridView1' style='color:#333333;border-collapse:collapse;'>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        s+="<tr style='color:White;background-color:#990000;font-weight:bold;'>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            s+="<th scope='col'>水?lt;/th><th scope='col'>代号</th><th scope='col'>城市</th></tr>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        int m = 0;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        while (dr.Read())<br><img id="Codehighlighter1_1803_2253_Open_Image" onclick="this.style.display='none'; codehighlighter1_1803_2253_open_text.style.display="'none';" codehighlighter1_1803_2253_closed_image.style.display="'inline';" codehighlighter1_1803_2253_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1803_2253_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1803_2253_closed_text.style.display="'none';" codehighlighter1_1803_2253_open_image.style.display="'inline';" codehighlighter1_1803_2253_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            if (m % 2 == 0)<br><img id="Codehighlighter1_1845_1936_Open_Image" onclick="this.style.display='none'; codehighlighter1_1845_1936_open_text.style.display="'none';" codehighlighter1_1845_1936_closed_image.style.display="'inline';" codehighlighter1_1845_1936_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1845_1936_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1845_1936_closed_text.style.display="'none';" codehighlighter1_1845_1936_open_image.style.display="'inline';" codehighlighter1_1845_1936_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                s += "<tr style='color:#333333;background-color:#FFFBD6;'>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            else<br><img id="Codehighlighter1_1967_2056_Open_Image" onclick="this.style.display='none'; codehighlighter1_1967_2056_open_text.style.display="'none';" codehighlighter1_1967_2056_closed_image.style.display="'inline';" codehighlighter1_1967_2056_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1967_2056_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1967_2056_closed_text.style.display="'none';" codehighlighter1_1967_2056_open_image.style.display="'inline';" codehighlighter1_1967_2056_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                s += "<tr style='color:#333333;background-color:White;'>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            m++;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            s += "<td>" + dr["id"] + "</td>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            s += "<td>" + dr["cityID"] + "</td>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            s += "<td>" + dr["city"] + "</td>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            s += "</tr>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }        <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        s+="</table>";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        dr.Close();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        conn.Close();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        this.Response.Write(s);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        this.Response.End();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">    #endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_2406_2745_Closed_Image" onclick="this.style.display='none'; codehighlighter1_2406_2745_closed_text.style.display="'none';" codehighlighter1_2406_2745_open_image.style.display="'inline';" codehighlighter1_2406_2745_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_2406_2745_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_2406_2745_open_text.style.display="'none';" codehighlighter1_2406_2745_closed_image.style.display="'inline';" codehighlighter1_2406_2745_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">    ListProvince#region ListProvince<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">    private void ListProvince()<br><img id="Codehighlighter1_2463_2730_Open_Image" onclick="this.style.display='none'; codehighlighter1_2463_2730_open_text.style.display="'none';" codehighlighter1_2463_2730_closed_image.style.display="'inline';" codehighlighter1_2463_2730_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2463_2730_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_2463_2730_closed_text.style.display="'none';" codehighlighter1_2463_2730_open_image.style.display="'inline';" codehighlighter1_2463_2730_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        string sql = "select * from province";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        DataSet ds = GetDataSet(sql);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        DropDownList1.DataSource = ds;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        DropDownList1.DataTextField = "province";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        DropDownList1.DataValueField = "provinceID";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        DropDownList1.DataBind();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">    #endregion</div> 3.CZ数据库下?a ><font color="#002c99">area1.rar</font></a> </div> <br><img src ="http://www.tkk7.com/cgogg/aggbug/125324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:26 <a href="http://www.tkk7.com/cgogg/articles/125324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax实现在textbox中输入内容,动态从数据库中模糊查询昄C拉框?/title><link>http://www.tkk7.com/cgogg/articles/125322.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:25:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/125322.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/125322.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/125322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/125322.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/125322.html</trackback:ping><description><![CDATA[<div id="tjnrdjr" class="postTitle"> <a id="viewpost1_TitleUrl" >Ajax实现在textbox中输入内容,动态从数据库中模糊查询昄C拉框?/a><br>http://www.cnblogs.com/singlepine/archive/2006/05/21/405566.html <br> </div> <p><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/singlepine/ajaxtextbox.JPG" border="0"></p> <p>功能Q在textbox中输入内容,动态从数据库模p查询显C到下拉框中Q以供选择<br><br>1.建立一aspx面Qhtml代码 </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><HTML><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    <HEAD><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">        <title>WebForm1</title><br><img id="Codehighlighter1_73_1875_Open_Image" onclick="this.style.display='none'; codehighlighter1_73_1875_open_text.style.display="'none';" codehighlighter1_73_1875_closed_image.style.display="'inline';" codehighlighter1_73_1875_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_73_1875_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_73_1875_closed_text.style.display="'none';" codehighlighter1_73_1875_open_image.style.display="'inline';" codehighlighter1_73_1875_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">        <SCRIPT language="javascript"><img src="http://www.cnblogs.com/Images/dot.gif">            <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            //城市------------------------------<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            function cityResult() <br><img id="Codehighlighter1_180_332_Open_Image" onclick="this.style.display='none'; codehighlighter1_180_332_open_text.style.display="'none';" codehighlighter1_180_332_closed_image.style.display="'inline';" codehighlighter1_180_332_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_180_332_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_180_332_closed_text.style.display="'none';" codehighlighter1_180_332_open_image.style.display="'inline';" codehighlighter1_180_332_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{ <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                var city=document.getElementById("TextBox1");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                WebForm1.GetCityList(city.value,get_city_Result_CallBack);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            function get_city_Result_CallBack(response)<br><img id="Codehighlighter1_415_1424_Open_Image" onclick="this.style.display='none'; codehighlighter1_415_1424_open_text.style.display="'none';" codehighlighter1_415_1424_closed_image.style.display="'inline';" codehighlighter1_415_1424_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_415_1424_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_415_1424_closed_text.style.display="'none';" codehighlighter1_415_1424_open_image.style.display="'inline';" codehighlighter1_415_1424_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                if (response.value != null)<br><img id="Codehighlighter1_477_1234_Open_Image" onclick="this.style.display='none'; codehighlighter1_477_1234_open_text.style.display="'none';" codehighlighter1_477_1234_closed_image.style.display="'inline';" codehighlighter1_477_1234_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_477_1234_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_477_1234_closed_text.style.display="'none';" codehighlighter1_477_1234_open_image.style.display="'inline';" codehighlighter1_477_1234_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">                <img src="http://www.cnblogs.com/Images/dot.gif">{                    <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                    //debugger;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                    document.getElementById("DropDownList1").style.display="block";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                    document.getElementById("DropDownList1").length=0;                <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                var ds = response.value;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                    if(ds != null && typeof(ds) == "object" && ds.Tables != null)<br><img id="Codehighlighter1_845_1216_Open_Image" onclick="this.style.display='none'; codehighlighter1_845_1216_open_text.style.display="'none';" codehighlighter1_845_1216_closed_image.style.display="'inline';" codehighlighter1_845_1216_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_845_1216_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_845_1216_closed_text.style.display="'none';" codehighlighter1_845_1216_open_image.style.display="'inline';" codehighlighter1_845_1216_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">                    <img src="http://www.cnblogs.com/Images/dot.gif">{                    <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                        for(var i=0; i<ds.Tables[0].Rows.length; i++)<br><img id="Codehighlighter1_957_1194_Open_Image" onclick="this.style.display='none'; codehighlighter1_957_1194_open_text.style.display="'none';" codehighlighter1_957_1194_closed_image.style.display="'inline';" codehighlighter1_957_1194_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_957_1194_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_957_1194_closed_text.style.display="'none';" codehighlighter1_957_1194_open_image.style.display="'inline';" codehighlighter1_957_1194_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">                    <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                        var name=ds.Tables[0].Rows[i].city;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                      var id=ds.Tables[0].Rows[i].cityID;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                      document.getElementById("DropDownList1").options.add(new Option(name,id));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">                    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">                    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">                }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                else<br><img id="Codehighlighter1_1273_1374_Open_Image" onclick="this.style.display='none'; codehighlighter1_1273_1374_open_text.style.display="'none';" codehighlighter1_1273_1374_closed_image.style.display="'inline';" codehighlighter1_1273_1374_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1273_1374_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1273_1374_closed_text.style.display="'none';" codehighlighter1_1273_1374_open_image.style.display="'inline';" codehighlighter1_1273_1374_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">                <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                    document.getElementById("DropDownList1").style.display="none";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">                }             <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                return<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">           <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            function getData()<br><img id="Codehighlighter1_1481_1872_Open_Image" onclick="this.style.display='none'; codehighlighter1_1481_1872_open_text.style.display="'none';" codehighlighter1_1481_1872_closed_image.style.display="'inline';" codehighlighter1_1481_1872_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1481_1872_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1481_1872_closed_text.style.display="'none';" codehighlighter1_1481_1872_open_image.style.display="'inline';" codehighlighter1_1481_1872_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                var province=document.getElementById("DropDownList1");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                var pindex = province.selectedIndex;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                var pValue = province.options[pindex].value;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                var pText  = province.options[pindex].text;                                                <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                document.getElementById("<%=TextBox1.ClientID%>").innerText=pText;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">        </SCRIPT><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    </HEAD><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    <body><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">        <form id="Form1" method="post" runat="server"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">            <br><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">            <asp:DropDownList ID="DropDownList1" runat="server" Width="192px" style="display:none"></asp:DropDownList><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">        </form><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    </body><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"></HTML></div> 2.cs代码<br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Collections;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.ComponentModel;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Data;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Drawing;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Web;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Web.SessionState;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Web.UI;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Web.UI.WebControls;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Web.UI.HtmlControls;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Data.SqlClient;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">namespace ajaxselect<br><img id="Codehighlighter1_297_1903_Open_Image" onclick="this.style.display='none'; codehighlighter1_297_1903_open_text.style.display="'none';" codehighlighter1_297_1903_closed_image.style.display="'inline';" codehighlighter1_297_1903_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_297_1903_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_297_1903_closed_text.style.display="'none';" codehighlighter1_297_1903_open_image.style.display="'inline';" codehighlighter1_297_1903_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://www.cnblogs.com/Images/dot.gif">{<br><img id="Codehighlighter1_300_368_Open_Image" onclick="this.style.display='none'; codehighlighter1_300_368_open_text.style.display="'none';" codehighlighter1_300_368_closed_image.style.display="'inline';" codehighlighter1_300_368_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_300_368_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_300_368_closed_text.style.display="'none';" codehighlighter1_300_368_open_image.style.display="'inline';" codehighlighter1_300_368_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    /**//// <summary><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">    /// Summary description for WebForm1.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    /// </summary><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">    public class WebForm1 : System.Web.UI.Page<br><img id="Codehighlighter1_414_1901_Open_Image" onclick="this.style.display='none'; codehighlighter1_414_1901_open_text.style.display="'none';" codehighlighter1_414_1901_closed_image.style.display="'inline';" codehighlighter1_414_1901_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_414_1901_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_414_1901_closed_text.style.display="'none';" codehighlighter1_414_1901_open_image.style.display="'inline';" codehighlighter1_414_1901_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        protected System.Web.UI.WebControls.TextBox TextBox1;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        protected System.Web.UI.WebControls.DropDownList DropDownList1;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">    <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        private void Page_Load(object sender, System.EventArgs e)<br><img id="Codehighlighter1_602_823_Open_Image" onclick="this.style.display='none'; codehighlighter1_602_823_open_text.style.display="'none';" codehighlighter1_602_823_closed_image.style.display="'inline';" codehighlighter1_602_823_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_602_823_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_602_823_closed_text.style.display="'none';" codehighlighter1_602_823_open_image.style.display="'inline';" codehighlighter1_602_823_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            Ajax.Utility.RegisterTypeForAjax(typeof(WebForm1));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            if (!Page.IsPostBack)<br><img id="Codehighlighter1_687_819_Open_Image" onclick="this.style.display='none'; codehighlighter1_687_819_open_text.style.display="'none';" codehighlighter1_687_819_closed_image.style.display="'inline';" codehighlighter1_687_819_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_687_819_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_687_819_closed_text.style.display="'none';" codehighlighter1_687_819_open_image.style.display="'inline';" codehighlighter1_687_819_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">            <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                this.TextBox1.Attributes.Add("onchange", "cityResult();");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">                this.DropDownList1.Attributes.Add("onclick", "getData();");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">            }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_828_1320_Closed_Image" onclick="this.style.display='none'; codehighlighter1_828_1320_closed_text.style.display="'none';" codehighlighter1_828_1320_open_image.style.display="'inline';" codehighlighter1_828_1320_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_828_1320_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_828_1320_open_text.style.display="'none';" codehighlighter1_828_1320_closed_image.style.display="'inline';" codehighlighter1_828_1320_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">        Web Form Designer generated code#region Web Form Designer generated code<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        override protected void OnInit(EventArgs e)<br><img id="Codehighlighter1_917_1049_Open_Image" onclick="this.style.display='none'; codehighlighter1_917_1049_open_text.style.display="'none';" codehighlighter1_917_1049_closed_image.style.display="'inline';" codehighlighter1_917_1049_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_917_1049_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_917_1049_closed_text.style.display="'none';" codehighlighter1_917_1049_open_image.style.display="'inline';" codehighlighter1_917_1049_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            //<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            // CODEGEN: This call is required by the ASP.NET Web Form Designer.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            //<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            InitializeComponent();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            base.OnInit(e);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        <br><img id="Codehighlighter1_1056_1201_Open_Image" onclick="this.style.display='none'; codehighlighter1_1056_1201_open_text.style.display="'none';" codehighlighter1_1056_1201_closed_image.style.display="'inline';" codehighlighter1_1056_1201_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1056_1201_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1056_1201_closed_text.style.display="'none';" codehighlighter1_1056_1201_open_image.style.display="'inline';" codehighlighter1_1056_1201_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        /**//// <summary><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        /// Required method for Designer support - do not modify<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        /// the contents of this method with the code editor.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        /// </summary><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        private void InitializeComponent()<br><img id="Codehighlighter1_1241_1307_Open_Image" onclick="this.style.display='none'; codehighlighter1_1241_1307_open_text.style.display="'none';" codehighlighter1_1241_1307_closed_image.style.display="'inline';" codehighlighter1_1241_1307_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1241_1307_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1241_1307_closed_text.style.display="'none';" codehighlighter1_1241_1307_open_image.style.display="'inline';" codehighlighter1_1241_1307_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{    <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            this.Load += new System.EventHandler(this.Page_Load);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        #endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_1325_1574_Closed_Image" onclick="this.style.display='none'; codehighlighter1_1325_1574_closed_text.style.display="'none';" codehighlighter1_1325_1574_open_image.style.display="'inline';" codehighlighter1_1325_1574_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_1325_1574_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1325_1574_open_text.style.display="'none';" codehighlighter1_1325_1574_closed_image.style.display="'inline';" codehighlighter1_1325_1574_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">        GetCityList#region GetCityList<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        public DataSet GetCityList(int provinceid)<br><img id="Codehighlighter1_1451_1561_Open_Image" onclick="this.style.display='none'; codehighlighter1_1451_1561_open_text.style.display="'none';" codehighlighter1_1451_1561_closed_image.style.display="'inline';" codehighlighter1_1451_1561_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1451_1561_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1451_1561_closed_text.style.display="'none';" codehighlighter1_1451_1561_open_image.style.display="'inline';" codehighlighter1_1451_1561_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            string sql = "select * from city where father like '%" + provinceid + "%'";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            return GetDataSet(sql);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        #endregion<br><img id="Codehighlighter1_1578_1897_Closed_Image" onclick="this.style.display='none'; codehighlighter1_1578_1897_closed_text.style.display="'none';" codehighlighter1_1578_1897_open_image.style.display="'inline';" codehighlighter1_1578_1897_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_1578_1897_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1578_1897_open_text.style.display="'none';" codehighlighter1_1578_1897_closed_image.style.display="'inline';" codehighlighter1_1578_1897_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">        GetDataSet#region GetDataSet<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">        public static DataSet GetDataSet(string sql)<br><img id="Codehighlighter1_1646_1884_Open_Image" onclick="this.style.display='none'; codehighlighter1_1646_1884_open_text.style.display="'none';" codehighlighter1_1646_1884_closed_image.style.display="'inline';" codehighlighter1_1646_1884_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1646_1884_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1646_1884_closed_text.style.display="'none';" codehighlighter1_1646_1884_open_image.style.display="'inline';" codehighlighter1_1646_1884_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">        <img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            SqlDataAdapter sda = new SqlDataAdapter(sql, ConnectionString);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            DataSet ds = new DataSet();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            sda.Fill(ds);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">            return ds;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">        #endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    }<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</div> 3.<a ><font color="#000000">源代码下?nbsp;</font>http://singlepine.cnblogs.com/Files/singlepine/ajaxselect.rar  </a> <br>4.数据库脚?br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">CREATE TABLE [dbo].[city](<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    [id] [int] NOT NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    [cityID] [nvarchar](6) COLLATE Chinese_PRC_CI_AS NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    [city] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    [father] [nvarchar](6) COLLATE Chinese_PRC_CI_AS NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"> CONSTRAINT [PK_city] PRIMARY KEY CLUSTERED <br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">(<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">    [id] ASC<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">) ON [PRIMARY]</div> <br><img src ="http://www.tkk7.com/cgogg/aggbug/125322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:25 <a href="http://www.tkk7.com/cgogg/articles/125322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax实现无刷新树http://www.tkk7.com/cgogg/articles/125319.htmlchenguochenguoWed, 20 Jun 2007 05:22:00 GMThttp://www.tkk7.com/cgogg/articles/125319.htmlhttp://www.tkk7.com/cgogg/comments/125319.htmlhttp://www.tkk7.com/cgogg/articles/125319.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/125319.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/125319.html阅读全文

chenguo 2007-06-20 13:22 发表评论
]]>
JavaScript调用Web Services实现无刷C联动http://www.tkk7.com/cgogg/articles/125318.htmlchenguochenguoWed, 20 Jun 2007 05:20:00 GMThttp://www.tkk7.com/cgogg/articles/125318.htmlhttp://www.tkk7.com/cgogg/comments/125318.htmlhttp://www.tkk7.com/cgogg/articles/125318.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/125318.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/125318.html阅读全文

chenguo 2007-06-20 13:20 发表评论
]]>
Ajax实现无刷C联动下拉?/title><link>http://www.tkk7.com/cgogg/articles/125316.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:17:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/125316.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/125316.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/125316.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/125316.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/125316.html</trackback:ping><description><![CDATA[     摘要: Ajax实现无刷C联动下拉? 1.html代码 <HTML>    <HEAD>        <title>Ajax实现无刷C联动下拉?lt;/title>     &...  <a href='http://www.tkk7.com/cgogg/articles/125316.html'>阅读全文</a><img src ="http://www.tkk7.com/cgogg/aggbug/125316.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:17 <a href="http://www.tkk7.com/cgogg/articles/125316.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax无刷新实现图片切换特?/title><link>http://www.tkk7.com/cgogg/articles/125315.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:14:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/125315.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/125315.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/125315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/125315.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/125315.html</trackback:ping><description><![CDATA[     摘要: Ajax无刷新实现图片切换特? 1.面cs代码 using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System....  <a href='http://www.tkk7.com/cgogg/articles/125315.html'>阅读全文</a><img src ="http://www.tkk7.com/cgogg/aggbug/125315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:14 <a href="http://www.tkk7.com/cgogg/articles/125315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> web应用的跨访问的解决Ҏhttp://www.tkk7.com/cgogg/articles/124992.htmlchenguochenguoMon, 18 Jun 2007 10:16:00 GMThttp://www.tkk7.com/cgogg/articles/124992.htmlhttp://www.tkk7.com/cgogg/comments/124992.htmlhttp://www.tkk7.com/cgogg/articles/124992.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/124992.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/124992.html

      Ajax的跨域访问问题是现有的Ajax开发h员比较常遇到的问题?br>      IE对于跨域讉K的处理是Q弹告框Q提醒用戗如果用户将该网站纳入可信Q|站Q或者调低安全别,那么q个问题IE׃会在提醒你?nbsp; 
         FireFox{其它非微Y的浏览器遇到跨域讉KQ则解决Ҏl一是拒l访问?br>          有h_IE是主浏览器Q只要它能正怋用就好了。此a差已QIE虽然能够处理Q但是是有前提的Q要么用户不厌其烦地在页面弹告框之后点击是(点击 否就不执行该Ajax调用了)Q要么用户将该网站纳入可信Q站点。这两种做法Q在企业理pȝ的应用中倒是比较常见Q因为系l管理员可以以行政手D保证用 L行ؓ。但是对于互联网上的|站或者门户开发,q种做法则不行?br>         最q遇Cq个问题Q需要在跨域讉Kl束之后完成使主H口出现一些特效,搜烦了一些资料,通过不断试以及在不同浏览器中进行兼Ҏ测试,扑ֈ了几个可行的ҎQ?br>         1? Web代理的方式。即用户讉KA|站时所产生的对B|站的跨域访问请求均提交到A|站的指定页面,p面代替用户面完成交互Q从而返回合适的l果。此 Ҏ可以解决现阶D|能够惛_的多数跨域访问问题,但要求A|站提供Web代理的支持,因此A|站与B|站之间必须是紧密协作的Q且每次交互q程QA|站 的服务器负担增加Q且无法代用户保存session状态?br>         2、on-Demand方式。MYMSN的门户就用的q种方式Q不q? MYMSN中不涉及跨域讉K问题。动态控制script标记的生成,通过修改script标记的src属性完成对跨域面的调用。此Ҏ存在的缺hQ? script的src属性完成该调用旉取的方式时get方式Q如果请求时传递的字符串过大时Q可能会无法正常q行。不q此Ҏ非常适合聚合c门户用?br>         3? iframe方式。查看过醒来在javaeye上的一关于跨域访问的帖子Q他提到自己已经用iframe的方式解决了跨域讉K问题。数据提交跟获取Q采 用iframeq种方式的确可以了,但由于父H口与子H口之间不能交互Q跨域访问的情况下,q种交互被拒l)Q因此无法完成对父窗口效果的影响?br>         4? 用户本地转储方式QIE本n依附于windowsq_的特性ؓ我们提供了一U基于iframeQ利用内存来“l行”的方案,即两个window之间可以? 客户端通过windows剪脓板的方式q行数据传输Q只需要在接受数据的一方设|Intervalq行轮询Q获得结果后清除Interval卛_。FF? q_独立性决定了它不支持剪脓板这U方式,而以往版本的FF中存在的插g漏洞又被fixed了,所以FF无法通过内存来完成暗渡陈仓。而由于文件操作FF 也没有提供支持(无法通过Cookie跨域完成数据传递)Q致使这U技巧性的方式只能在IE中用?br>         5、我自己用于解决q类? 题的方式Q结合了前面几种方式Q在讉KA|站Ӟ先请求B|站完成数据处理Q再Ҏq回的标识来获得所需的结果。这U方法的~点也很明显QB|站的负载增 大了。优点,对session也实C保持Q同时A|站与B|站面间的交互能力增强了。最重要的一点,q种Ҏ满了我的全部需?




chenguo 2007-06-18 18:16 发表评论
]]>
IFrame 的?/title><link>http://www.tkk7.com/cgogg/articles/123818.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 03:05:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/123818.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/123818.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/123818.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/123818.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/123818.html</trackback:ping><description><![CDATA[在我们进行jsp的开发中Q不可避免的会遇到有jsp层叠的情况,所以经q我的试验,<IFRAME>q个标签q是很有的作用的。下面我们来看看具体怎么使用Q? <p>       首先<br><IFRAME ID="IFrame2" FRAMEBORDER=0 onload="dyniframesize('IFrame2');" marginwidth=0 marginheight=0 SCROLLING=NO SRC="****.jsp" width="187"></IFRAME><br><br><script language="Javascript"><br><!--<br>var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]<br>//extra height in px to add to iframe in FireFox 1.0+ browsers<br>var FFextraHeight=getFFVersion>=0.1? 16 : 0 </p> <p>function dyniframesize(iframename) {<br>  var pTar = null;<br>  if (document.getElementById){<br>    pTar = document.getElementById(iframename);<br>  }<br>  else{<br>    eval('pTar = ' + iframename + ';');<br>  }<br>  if (pTar && !window.opera){<br>    //begin resizing iframe<br>    pTar.style.display="block"<br>    <br>    if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){<br>      //ns6 syntax<br>      pTar.height = pTar.contentDocument.body.offsetHeight+FFextraHeight; <br>    }<br>    else if (pTar.Document && pTar.Document.body.scrollHeight){<br>      //ie5+ syntax<br>      pTar.height = pTar.Document.body.scrollHeight;<br>    }<br>  }<br>}<br>--><br></script><br><br><IFRAME> 里面的属性我׃多说了,都是很常见的。这里我多写了一个函数dyniframesize()Q它的作用是处理装蝲面与容器页面的同步Q即大调整到合适的位置?br>因ؓq样装蝲的页面很隑֛定的控制大小Q所以用Documentq行相对大小的设定,是一个不错的x?/p> <br><img src ="http://www.tkk7.com/cgogg/aggbug/123818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-13 11:05 <a href="http://www.tkk7.com/cgogg/articles/123818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一日精通Ajax技?/title><link>http://www.tkk7.com/cgogg/articles/123794.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:26:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/123794.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/123794.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/123794.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/123794.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/123794.html</trackback:ping><description><![CDATA[<h1>一日精通Ajax技?/h1> <p>  Ajaxq个名称怎么来的Q本Z不得而之了,大概是(Active Javascript Action XmlQ吧Q说白一点就是运用了 javascript、xmlhttp和xmldom技术及|站后台来处理用L一些操作的Ҏ吧?/p> <p>  那么本h分三步来说明如何?Ajax 技术来做开发?/p> <p>  一、用 javascript 操作 xmlhttp 对象</p> <p>  二、服务器部对xmlhttph的响应(PHP范例Q?/p> <p>  三、xmldom 的用方?/p> <p>  先说W一部䆾Q?/p> <p>  一、用 javascript 操作 xmlhttp 对象</p> <p>  IE7, Mozilla ,Firefox{浏览器中,javascript是内|有 XMLHttpRequest q个对象的,但IE5+则没有,需要用如下Ҏ来启动:<br> //IE 6<br> try{ xhttp = new ActiveXObject("Msxml2.XMLHTTP";} catch(e){ ; }<br> //IE5+<br> if(xhttp == null) try { xhttp = new ActiveXObject("Microsoft.XMLHTTP";} catch(e){ ; }</p> <p>  那考虑不同览器的兼容Q启动一个xmlhttp一般都要按如下方式Q?/p> <p>CODE:[Copy to clipboard]var xhttp = null;</p> <p>if(window.XMLHttpRequest){ //IE7, Mozilla ,Firefox {浏览器内置该对?/p> <p>  xhttp = new XMLHttpRequest();<br>   <br> }else if(window.ActiveXObject){ //IE6、IE5</p> <p>  try{ xhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e){ ; }<br>   <br>   if( xhttp == null) try { xhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (e){; }<br>   <br> }</p> <p>  对于 xmlhttp 的用,一般遵守如下的序Q?/p> <p>  1、初始化 xmlhttp 对象Q上文)Q?/p> <p>  2、打开链接</p> <p>  Ҏ</p> <p>xhttp.open("GET", purl, true); </p> <p>  参数一Q用 GET ?POST 方式发送数?/p> <p>  参数二、请求网址Q只能请求你服务器上的资源,一般浏览器安全限制不能d跨域的数据)</p> <p>  参数三、true 表示异步传输Q服务器q回信息完成前,你可以进行其它操作)Qfalse 表示L方式的传输?/p> <p>  3、设定要发送的 http h?/p> <p>  ҎQ?/p> <p>xhttp.setRequestHeader(key,value);</p> <p>  一般来_默认要发送的头是Qxhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded";</p> <p>  q种表示发送的内容cd的请求头用于发送文本数据,而且javascript默认是以unicode发送的Q还有另外一UŞ式是Qxhttp.setRequestHeader("Content-Type","multipart/form-data";q表C发送二制Ş式的数据Q由于安全性原因,javascript一般不能用q种方式来发送数据,所以这个头一般没什么用?/p> <p>  如果你的|站开启了使用 refer 参数来防盗链Q那么你必须用这个方法指?Refer 参数Q或者如果用户需要登录才能进行某操作Q那么要指定 Cookie 的请求头?/p> <p>  4、send 数据</p> <p>  ҎQxhttp.send(postdata);</p> <p>  对于?getLhQ不需要指定postdataQ直接用 test.php?a=a&b=b q样形式的网址来请求即可?/p> <p>  如果是post方式Q需要用 key1=value2&key2=value2 q样的Ş式来Ҏ据进行处理,把它合ƈ? postdata 字串中,然后发送?/p> <p>  注意事项Q?/p> <p>  javascript默认发送数据的方式是unicodeQ处理返回的数据必须是utf-8格式Q因此,在发送的时候,需要用escape()函数来处理postdata和网址的valueQ在服务器上必须q原q些valueQƈ把unicode转ؓ面~码|因此如果?jsp ?asp.<a title="25175.net分网?>net</a> 都会比较单,但如果用php处理h是什么费劲的Q等下会教你如何做?/p> <p>  5、确认服务器q回资料完成下蝲</p> <p>  [1] 如果用阻断的方式来发送请求,那么直接? if(xhttp.readyState == 4)p判断是否完成?/p> <p>readyState 的具体属性gؓQ?br> 0 没open<br> 1 没send<br> 2 状态未?br> 3 正在传?br> 4 传送完?/p> <p>  当然Z保障赯Q还需要加多一重判断,是 if(xhttp.status == 200) Qstatus 是 http 协议里的q回头代?/p> <p>1xx 表示Q唉呀Q忘CQ?br> 2xx 表示成功的信?br> 3xx 表示面转移<br> 4xx 面不存?br> 5xx 表示服务器的各种错误</p> <p>  如果你的面没特D处理,一般用 if(xhttp.status == 200)  来确信内容返回是正确?/p> <p>  [2] 如果用异步传输,需要用 onreadystatechange 的事件来监听</p> <p>xhttp.onreadystatechange = function()<br> {<br>    //q里来进行上面阻断方式的判断<br>    if(myajax.xhttp.readyState == 4){<br>                 if(myajax.xhttp.status == 200){<br>                   //要进行的后箋操作<br>                 }<br>         }<br> }</p> <p>  6、获取返回结?/p> <p>属性:<br> [1]xhttp.responseBody;<br> [2]xhttp.responseStream;<br> [3]xhttp.responseXml;<br> [4]xhttp.responseText;</p> <p>  其中1?都是二进制的方式Q一般很会用到Q?不用看都知道?/p> <p>  如果服务端无意外的话[3]q回的是一个xmldom的对?/p> <p>  二、服务器部对xmlhttph的响应(PHP范例Q?/p> <p>  Z化操作,在这里把 xmlhttp的各作操作封装ؓ一个类</p> <p>  CODE:[Copy to clipboard]function DedeAjax(WiteOKFunc){ //WiteOKFunc 为异步状态事件处理函?</p> <p>//xmlhttp和xmldom对象<br> this.xhttp = null;<br> this.xdom = null;</p> <p>//post或get发送数据的键值对<br> this.keys = Array();<br> this.values = Array();<br> this.keyCount = -1;</p> <p>//httph?br> this.rkeys = Array();<br> this.rvalues = Array();<br> this.rkeyCount = -1;<br> //h头类?br> this.rtype = 'text';</p> <p>//初始化xmlhttp<br> if(window.XMLHttpRequest){//IE7, Mozilla ,Firefox {浏览器内置该对?br>      this.xhttp = new XMLHttpRequest();<br> }else if(window.ActiveXObject){//IE6、IE5<br>      try { this.xhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { }<br>      if (this.xhttp == null) try { this.xhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { }<br> }<br> this.xhttp.onreadystatechange = WiteOKFunc;<br> //rs: responseBody、responseStream、responseXml、responseText</p> <p>//以下为成员函?br> //--------------------------------</p> <p>//初始化xmldom<br> this.InitXDom = function(){<br>   var obj = null;<br>   if (typeof(DOMParser) != "undefined") { // Gecko、Mozilla、Firefox<br>     var parser = new DOMParser();<br>     obj = parser.parseFromString(xmlText, "text/xml");<br>   } else { // IE<br>     try { obj = new ActiveXObject("MSXML2.DOMDocument");} catch (e) { }<br>     if (obj == null) try { obj = new ActiveXObject("Microsoft.XMLDOM"); } catch (e) { }<br>   }<br>   this.xdom = obj;<br> };</p> <p>//增加一个POST或GET键值对<br> this.AddKey = function(skey,svalue){<br>         this.keyCount++;<br>         this.keys[this.keyCount] = skey;<br>         this.values[this.keyCount] = escape(svalue);<br> };</p> <p>//增加一个Httph头键值对<br> this.AddHead = function(skey,svalue){<br>         this.rkeyCount++;<br>         this.rkeys[this.rkeyCount] = skey;<br>         this.rvalues[this.rkeyCount] = svalue;<br> };</p> <p>//清除当前对象的哈希表参数<br> this.ClearSet = function(){<br>         this.keyCount = -1;<br>         this.keys = Array();<br>         this.values = Array();<br>         this.rkeyCount = -1;<br>         this.rkeys = Array();<br>         this.rvalues = Array();<br> };</p> <p>//发送httph?br> this.SendHead = function(){<br>         if(this.rkeyCount!=-1){ //发送用戯行设定的h?br>           for(;i<=this.rkeyCount;i++){<br>                   this.xhttp.setRequestHeader(this.rkeys[i],this.rvalues[i]); <br>           }<br>   }<br> if(this.rtype=='binary'){<br>           this.xhttp.setRequestHeader("Content-Type","multipart/form-data");<br>   }else{<br>           this.xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");<br>   }<br> };</p> <p>//用Post方式发送数?br> this.SendPost = function(purl){<br>         var pdata = "";<br>         var i=0;<br>         this.state = 0;<br>         this.xhttp.open("POST", purl, true); <br>         this.SendHead();<br>   if(this.keyCount!=-1){ //post数据<br>           for(;i<=this.keyCount;i++){<br>                   if(pdata=="") pdata = this.keys[i]+'='+this.values[i];<br>                   else pdata += "&"+this.keys[i]+'='+this.values[i];<br>           }<br>   }<br>   this.xhttp.send(pdata);<br> };</p> <p>//用GET方式发送数?br> this.SendGet = function(purl){<br>         var gkey = "";<br>         var i=0;<br>         this.state = 0;<br>         if(this.keyCount!=-1){ //get参数<br>           for(;i<=this.keyCount;i++){<br>                   if(gkey=="") gkey = this.keys[i]+'='+this.values[i];<br>                   else gkey += "&"+this.keys[i]+'='+this.values[i];<br>           }<br>           if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;<br>           else  purl = purl + '&' + gkey;<br>   }<br>         this.xhttp.open("GET", purl, true); <br>         this.SendHead();<br>   this.xhttp.send();<br> };</p> <p>} // End Class DedeAjax<br> 上面代码保存为: dedeajax.js</p> <p>ok 那现在做个最单的试?br> test.htm</p> <p>CODE:[Copy to clipboard]<script language='javascript'  src='dedeajax.js'></script><br> <script language='javascript'><br> function WiteOK()<br> {<br>    var myinfo = document.getElementById("myinfo");<br>     if(myajax.xhttp.readyState == 4){<br>         if(myajax.xhttp.status == 200){<br>             myinfo.innerHTML = myajax.xhttp.responseText;<br>         }<br>     }<br> }<br> var myajax = new DedeAjax(WiteOK);<br> myajax.AddKey("key1","----------------------------");<br> myajax.SendPost("test.php");</p> <p></script></p> <p><div id='myinfo'><div><br> test.php</p> <p><br> CODE:[Copy to clipboard]<?<br> header("Content-Type: text/html; charset=gb2312");<br> echo $_POST['key1'];<br> ?><br> 看到了什么了呢?不用Ȁ动,真正让你头痛的东西还没有出来?/p> <p>把类里面?/p> <p>CODE:[Copy to clipboard]this.AddKey = function(skey,svalue){<br>    this.keyCount++;<br>    this.keys[this.keyCount] = skey;<br>    this.values[this.keyCount] = svalue;//escape(svalue);<br> };<br> escape 屏蔽?/p> <p>发?<br> myajax.AddKey("key1","-----?--?---?----";</p> <p>看到什么了Qؕ码是吧?呵呵Q这回开始头大了</p> <p>先把 escape攑֛?br> this.values[this.keyCount] = escape(svalue);</p> <p>那么看到的就?br> -----%u4E2D---%u56FD----%u4EBA-----</p> <p>如何?nbsp; %u4E2D  q些东西弄回来呢Q对于php而言q是一个很复杂的问题,如果用aspq单多?/p> <p>下面是我写的一个函敎ͼ</p> <p><br> CODE:[Copy to clipboard]//unicode url~码转gbk~码函数<br> function Unicode2Gbk($str)<br> {<br>         //载入对照词典<br>         if(!isset($GLOBALS['GbkUniDic']))<br>         {<br>           $ds = file("./data/gbk_unicode.dic");<br>           foreach($ds as $l){<br>                   $GLOBALS['GbkUniDic'][hexdec('0x'.substr($l,0,4))] = substr($l,5,4);<br>           }<br>   }<br>   //处理字符?br>   $glen = strlen($str);<br>   $okstr = "";<br>   for($i=0; $i < $glen; $i++)<br>   {<br>            if( $glen-$i > 4){<br>                     if($str[$i]=='%' && $str[$i+1]=='u'){<br>                               $uni = hexdec('0x'.substr($str,$i+2,4));<br>                               if(isset($GLOBALS['GbkUniDic'][$uni])){<br>                                       $uni = $GLOBALS['GbkUniDic'][$uni];<br>                                       $okstr .= chr(hexdec(substr($uni,0,2))).chr(hexdec(substr($uni,2,2)));<br>                               }<br>                               else $okstr .= "&#{".hexdec("0x".$uni).";";<br>                               $i = $i+5;<br>                     }<br>                     else $okstr .= $str[$i];<br>            }<br>            else $okstr .= $str[$i];<br>   }<br>   return $okstr;<br> }<br> 词典文gQ?<a >http://www.ce86.com/myimg/data.rar</a></p> <p><br> 把test.php 输出改ؓ</p> <p>echo Unicode2Gbk($_POST['key1']);</p> <p>正常了吧</p> <p>以下说下面和xml有关的东西的?/p> <p>  三、xmldom 的用方?br> <br> ׃本文仅是牵针引线的作用,q一章就单些Q因为针对的?php Q如果针对的?asp.<a title="25175.net分网?>net</a> ?jsp 写涉?web server cȝ通信Q已l不单纯?ajax  的问题了Q本章的d是把test2.php</p> <p>CODE:[Copy to clipboard]<?<br> header("Content-Type: text/xml; charset=gb2312");<br> echo '<'.'?'."xml version=\"1.0\" encoding=\"gb2312\" ".'?'."><br> <myhome><br>   <item sex=\"男\">我是一</item><br>   <item sex=\"女\">我是二</item><br> </myhome><br> ";<br> ?>q个xml文档在客L用自q方式展现出来。因为xmlq种东西比较ȝQ所以语法也必须严格Qtest2.htm的页面的源码?/p> <p>CODE:[Copy to clipboard]<html><br> <head><br> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br> <title>ajax试</title><br> </head><br> <body onload="WiteLoadDocument()"><br> <script language='javascript'  src='dedeajax.js'></script><br> <script language='javascript'><br> var myajax = new DedeAjax(WiteOK);<br> function WiteOK()<br> {<br>    var myinfo = document.getElementById("myinfo");<br>    var mydom = null;<br>    myinfo.innerHTML = "以下是处理结果:<br/>";<br>    if(myajax.xhttp.readyState == 4){<br>      mydom = myajax.xhttp.responseXml;<br>      alert(mydom);<br>    }<br> }<br> function WiteLoadDocument()<br> {<br>    myajax.SendGet("test2.php");        <br> }<br> </script><br> <div id='myinfo'><div><br> </body><br> </html><br> 在IE中测试一下,如果弹出的对话框?[object] pC成功获得返回的xml的xmldoc了?/p> <p>那下面是处理Q?/p> <p>CODE:[Copy to clipboard]function WiteOK()<br> {<br>    var myinfo = document.getElementById("myinfo");<br>    var mydom = null;<br>    myinfo.innerHTML = "以下是处理结果:<br/>";<br>    if(myajax.xhttp.readyState == 4){<br>      mydom = myajax.xhttp.responseXml;<br>      var nodeList = mydom.selectNodes("/myhome/item");<br>      var mynode = null;<br>      var myatt = null;<br>      var mysex = "";<br>      for(i=1;i<=nodeList.length;i++)<br>      {<br>               mynode = nodeList[i-1];<br>               for(j=0;j < myinfo.attributes.length;j++)<br>               {<br>                        if(!mynode.attributes[j]) break;<br>                        myatt = mynode.attributes[j];<br>                        if(myatt.name=='sex') mysex = myatt.value;<br>               }<br>               myinfo.innerHTML += "我是Q?+mynode.text+"Q我的性别是:"+ mysex +"<br/>";<br>      }<br>    }<br> }</p> <p>l果Q?/p> <p>CODE:[Copy to clipboard]以下是处理结果:<br> 我是Q我是小一Q我的性别是:?br> 我是Q我是小二,我的性别是:?br> OKQ目的已l达?/p> <p>  关于dom的部份只在IE6中测试过Q可能在firefox中会有问题,大家可能参考与兼容性有关的文档?/p> <br><img src ="http://www.tkk7.com/cgogg/aggbug/123794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:26 <a href="http://www.tkk7.com/cgogg/articles/123794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajaxlg--xmlhttphttp://www.tkk7.com/cgogg/articles/123790.htmlchenguochenguoWed, 13 Jun 2007 02:14:00 GMThttp://www.tkk7.com/cgogg/articles/123790.htmlhttp://www.tkk7.com/cgogg/comments/123790.htmlhttp://www.tkk7.com/cgogg/articles/123790.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/123790.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/123790.htmlXMLHTTP的?

  ֐思义QXMLHTTP是个传送XML格式数据的超文本传输协议?

  实际上,XMLHTTP的数据传输过E更为灵zM些:

  它上传的指o可以是XML格式数据Q也可以是字W串Q流Q或者一个无W号整数数组。还可以是URL的参数?

  它下辄l果可以是XML格式数据Q也可以是字W串Q流Q或者一个无W号整数数组?

  详情可参阅文末链接?

  客户端调用XMLHTTP的过E很单,只有5个步骤:

  1、创建XMLHTTP对象

  2、打开与服务端的连接,同时定义指o发送方式,服务|页(URL)和请求权限等?

  客户端通过Open命o打开与服务端的服务网늚q接。与普通HTTP指o传送一P可以?GET"Ҏ?POST"Ҏ指向服务端的服务|页?

  3、发送指令?

  4、等待ƈ接收服务端返回的处理l果?

  5、释放XMLHTTP对象

  XMLHTTPҎ

  Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword

  bstrMethodQ数据传送方式,即GET或POST?

  bstrUrlQ服务网늚URL?/p>

  varAsyncQ是否同步执行。缺省ؓTrueQ即同步执行Q但只能在DOM中实施同步执行。应用中一般将其置为FalseQ即异步执行?/p>

  bstrUserQ用户名Q可省略?

  bstrPasswordQ用户口令,可省略?

  Send varBody

  varBodyQ指令集。可以是XML格式数据Q也可以是字W串Q流Q或者一个无W号整数数组。也可以省略Q让指o通过OpenҎ的URL参数代入?

  setRequestHeader bstrHeader, bstrValue

  bstrHeaderQHTTP ?header)

  bstrValueQHTTP ?header)的?/p>

  如果OpenҎ定义为POSTQ可以定义表单方式上传xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

  XMLHTTP属?/p>

  onreadystatechangeQ在同步执行方式下获得返回结果的事g句柄。只能在DOM中调用?

  responseBodyQ结果返回ؓ无符h数数l?

  responseStreamQ结果返回ؓIStream?

  responseText Q结果返回ؓ字符丌Ӏ?

  responseXMLQ结果返回ؓXML格式数据?

  下面是本文附件源E序中的一个应用示例:

  Function GetResult(urlStr)

  Dim xmlHttp

  Dim retStr

  Set xmlHttp = CreateObject("Msxml2.XMLHTTP") '创徏对象

  On Error Resume Next '出错处理

  xmlHttp.Open "POST", urlStr, False '用POST方式打开q接Q异步执行?

  xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '上传表单

  xmlHttp.Send '发送指?/p>

  If Err.Number = 0 Then '如果q接正确

  retStr = xmlHttp.responseText '{待q获得服务端q回的结果字W串

  Else

  retStr = "Url not found" '否则q回出错信息

  End If

  Set xmlHttp = nothing '释放对象

  GetResult = retStr 'q回l果

  End Function

  GetResult()函数带入一个服务网늚URL参数Q把上传的指令安攑֜URL后面的参CQ如Q?

  urlStr = "server.asp?cmd=" & cmd & "&db=" & db & "table=" & table

  cmdQ执行方式,例如查询Q修改,删除{等?

  dbQ服务端数据库名

  tableQ服务端表名

  然后提交指oQ等待ƈ接收q回的处理结果。结果以字符串方式返回。最后由函数调用者处理ƈ昄l果?/p>


chenguo 2007-06-13 10:14 发表评论
]]>
ajax-http状态码手册http://www.tkk7.com/cgogg/articles/123789.htmlchenguochenguoWed, 13 Jun 2007 02:09:00 GMThttp://www.tkk7.com/cgogg/articles/123789.htmlhttp://www.tkk7.com/cgogg/comments/123789.htmlhttp://www.tkk7.com/cgogg/articles/123789.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/123789.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/123789.html(一) HTTP 1.1支持的状态代?/p>

100 Continue 初始的请求已l接受,客户应当l箋发送请求的其余部分
101 Switching Protocols 服务器将遵从客户的请求{换到另外一U协?br> 200 OK 一切正常,对GET和POSTh的应{文档跟在后面?br> 201 Created 服务器已l创Z文档QLocation头给Z它的URL?
202 Accepted 已经接受hQ但处理未完成?
203 Non-Authoritative Information 文档已经正常地返回,但一些应{头可能不正,因ؓ使用的是文档的拷?
204 No Content 没有新文档,览器应该l显C原来的文档。如果用户定期地h面Q而Servlet可以定用户文档_斎ͼq个状态代码是很有用的
205 Reset Content 没有新的内容Q但览器应该重|它所昄的内宏V用来强制浏览器清除表单输入内容
206 Partial Content 客户发送了一个带有Range头的GEThQ服务器完成了它
300 Multiple Choices 客户h的文档可以在多个位置扑ֈQ这些位|已l在q回的文档内列出。如果服务器要提Z先选择Q则应该在Location应答头指明?
301 Moved Permanently 客户h的文档在其他地方Q新的URL在Location头中l出Q浏览器应该自动地访问新的URL?
302 Found cM?01Q但新的URL应该被视Z时性的替代Q而不是永久性的?
303 See Other cM?01/302Q不同之处在于,如果原来的请求是POSTQLocation头指定的重定向目标文档应该通过GET提取
304 Not Modified 客户端有~冲的文档ƈ发出了一个条件性的hQ一般是提供If-Modified-Since头表C客户只x指定日期更新的文档)。服务器告诉客户Q原来缓冲的文档q可以l用?
305 Use Proxy 客户h的文档应该通过Location头所指明的代理服务器提取
307 Temporary Redirect ?02QFoundQ相同。许多浏览器会错误地响应302应答q行重定向,即原来的请求是POSTQ即使它实际上只能在POSTh的应{是303时才能重定向。由于这个原因,HTTP 1.1新增?07Q以便更加清除地区分几个状态代码:当出?03应答Ӟ览器可以跟随重定向的GET和POSThQ如果是307应答Q则览器只能跟随对GETh的重定向?
400 Bad Request h出现语法错误?
401 Unauthorized 客户试图未经授权讉K受密码保护的面。应{中会包含一个WWW-Authenticate_览器据此显C用户名?密码对话框,然后在填写合适的Authorization头后再次发出h?
403 Forbidden 资源不可用?br> 404 Not Found 无法扑ֈ指定位置的资?br> 405 Method Not Allowed hҎQGET、POST、HEAD、DELETE、PUT、TRACE{)Ҏ定的资源不适用?br> 406 Not Acceptable 指定的资源已l找刎ͼ但它的MIMEcd和客户在Accpet头中所指定的不兼容
407 Proxy Authentication Required cM?01Q表C客户必dl过代理服务器的授权?br> 408 Request Timeout 在服务器许可的等待时间内Q客户一直没有发ZQ何请求。客户可以在以后重复同一h?
409 Conflict 通常和PUTh有关。由于请求和资源的当前状态相冲突Q因此请求不能成功?br> 410 Gone 所h的文档已l不再可用,而且服务器不知道应该重定向到哪一个地址。它?04的不同在于,q回407表示文档怹地离开了指定的位置Q?04表示׃未知的原因文档不可用?
411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头?
412 Precondition Failed h头中指定的一些前提条件失?br> 413 Request Entity Too Large 目标文档的大超q服务器当前愿意处理的大。如果服务器认ؓ自己能够E后再处理该hQ则应该提供一个Retry-After?
414 Request URI Too Long URI太长
416 Requested Range Not Satisfiable 服务器不能满_户在h中指定的Range?br> 500 Internal Server Error 服务器遇C意料不到的情况,不能完成客户的请?br> 501 Not Implemented 服务器不支持实现h所需要的功能。例如,客户发出了一个服务器不支持的PUTh
502 Bad Gateway 服务器作为网x者代理时Qؓ了完成请求访问下一个服务器Q但该服务器q回了非法的应答
503 Service Unavailable 服务器由于维护或者负载过重未能应{。例如,Servlet可能在数据库q接池已满的情况下返?03。服务器q回503时可以提供一个Retry-After?
504 Gateway Timeout ׃Z理或|关的服务器使用Q表CZ能及时地从远E服务器获得应答
505 HTTP Version Not Supported 服务器不支持h中所指明的HTTP版本

(? XMLHttpRequest 对象Ҏ


abort()  停止当前h
getAllResponseHeaders() 作ؓ字符串返问完整的headers
getResponseHeader("headerLabel") 作ؓ字符串返问单个的header标签
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 讄未决的请求的目标 URL, Ҏ, 和其他参?br> send(content) 发送请?br> setRequestHeader("label", "value")  讄headerq和h一起发?/p>

(? XMLHttpRequest 对象属?/p>


onreadystatechange   状态改变的事g触发?br> readyState    对象状?integer):
    0 = 未初始化
    1 = d?br>     2 = 已读?br>     3 = 交互?br>     4 = 完成
responseText  服务器进E返回数据的文本版本
responseXML  服务器进E返回数据的兼容DOM的XML文档对象
status   服务器返回的状态码, 如:404 = "文g末找? ?00 ="成功"
statusText  服务器返回的状态文本信?/p>


chenguo 2007-06-13 10:09 发表评论
]]>
AJAX 开发简?/title><link>http://www.tkk7.com/cgogg/articles/AJAX.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:01:00 GMT</pubDate><guid>http://www.tkk7.com/cgogg/articles/AJAX.html</guid><wfw:comment>http://www.tkk7.com/cgogg/comments/122311.html</wfw:comment><comments>http://www.tkk7.com/cgogg/articles/AJAX.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/cgogg/comments/commentRss/122311.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/cgogg/services/trackbacks/122311.html</trackback:ping><description><![CDATA[<br> http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=28135&start=0&tstart=0 <br><br>AJAX开发简?br><br>http://blog.csdn.net/ll_feng/archive/2006/01/23/587041.aspx    <br>一、AJAX定义    <br>二、现状与需要解决的问题    <br>三、ؓ什么用AJAX    <br>四、谁在用AJAX    <br>五、用AJAX改进你的设计    <br>例子1Q数据校?br>例子2Q按需取数据—联菜?nbsp;   <br>例子3Q读取外部数?nbsp;   <br>六、AJAX的缺?nbsp;   <br>七、AJAX开?nbsp;   <br>7.1、AJAX应用到的技?nbsp;   <br>A、XMLHttpRequest对象    <br>B、Javascript    <br>C、DOM    <br>D、XML    <br>7.2、AJAX开发框?nbsp;   <br>A、初始化对象q发出XMLHttpRequesth    <br>B、指定响应处理函?nbsp;   <br>C、发出HTTPh    <br>D、处理服务器q回的信?nbsp;   <br>E、一个初步的开发框?nbsp;   <br>7.3、简单的CZ    <br>A、数据校?nbsp;   <br>B、联菜?nbsp;   <br>参考文章:    <br>在用浏览器览|页的时候,当页面刷新很慢的时候,你的览器在q什么?你的屏幕内容是什么?是的Q你的浏览器在等待刷斎ͼ而你的屏q内Ҏ一片空白,而你在屏q前苦苦的等待浏览器的响应。开发h员ؓ了克服这U尴的局面,不得不在每一个可能需要长旉{待响应的页面上增加一个DIVQ告诉用?#8220;pȝ正在处理您的hQ请E?#8230;…”?br>现在Q有一U越来越行热?#8220;?#8221;技术,可以d改变q种H迫的局面。那是AJAX。如今,随着Gmail、Google-maps的应用和各种览器的支持QAJAX正逐渐吸引全世界的眼球?br>一、AJAX定义<br>AJAXQAsynchronous JavaScript and XMLQ其实是多种技术的l合Q包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。其中:<br>使用XHTML和CSS标准化呈玎ͼ使用DOM实现动态显C和交互Q用XML和XSTLq行数据交换与处理,使用XMLHttpRequest对象q行异步数据dQ用Javascriptl定和处理所有数据?br>在AJAX提出之前Q业界对于上q技术都只是单独的用,没有l合使用Q也是由于之前的技术需求所军_的。随着应用的广泛,AJAX也成为香饽饽了?br>二、现状与需要解决的问题<br>传统的Web应用采用同步交互q程Q这U情况下Q用户首先向HTTP服务器触发一个行为或h的呼求。反q来Q服务器执行某些dQ再向发求的用户q回一个HTML面。这是一U不q诏的用户体验,服务器在处理h的时候,用户多数旉处于{待的状态,屏幕内容也是一片空白。如下图Q?br>  <br>自从采用文本作为Web传输和呈C后,我们都是采用q么一套传输方式。当负蝲比较的时候,qƈ不会体现出有什么不妥。可是当负蝲比较大,响应旉要很长,1分钟?分钟……数分钟的时候,q种{待׃可忍受了。严重的Q超q响应时_服务器干脆告诉你面不可用。另外,某些时候,我只是想改变面一部分的数据Q那Z么我必须重新加蝲整个面呢?Q当软g设计来讲Ih性化的时候,q么p糕的用户体验简直与q种原则背道而驰。ؓ什么老是要让用户{待服务器取数据呢?臛_Q我们应该减用L待的旉。现在,除了E序设计、编码优化和服务器调优之外,q可以采用AJAX?br>三、ؓ什么用AJAX<br>与传l的Web应用不同QAJAX采用异步交互q程。AJAX在用户与服务器之间引入一个中间媒介,从而消除了|络交互q程中的处理—等待—处理—等待缺炏V用L览器在执行d时即装蝲了AJAX引擎。AJAX引擎用JavaScript语言~写Q通常藏在一个隐藏的框架中。它负责~译用户界面及与服务器之间的交互。AJAX引擎允许用户与应用Y件之间的交互q程异步q行Q独立于用户与网l服务器间的交流。现在,可以用Javascript调用AJAX引擎来代替生一个HTTP的用户动作,内存中的数据~辑、页面导航、数据校验这些不需要重新蝲入整个页面的需求可以交lAJAX来执行?br>  <br>使用AJAXQ可以ؓISP、开发h员、终端用户带来可见的便捷Q?br>?nbsp;        减轻服务器的负担。AJAX的原则是“按需取数?#8221;Q可以最大程度的减少冗余hQ和响应Ҏ务器造成的负担?br>?nbsp;        无刷新更新页面,减少用户心理和实际的{待旉。特别的Q当要读取大量的数据的时候,不用像Reload那样出现白屏的情况,AJAX使用XMLHTTP对象发送请求ƈ得到服务器响应,在不重新载入整个面的情况下用Javascript操作DOM最l更新页面。所以在d数据的过E中Q用h面对的不是白屏,是原来的面内容Q也可以加一个Loading的提C框让用L道处于读取数据过E)Q只有当数据接收完毕之后才更新相应部分的内容。这U更新是瞬间的,用户几乎感觉不到?br>?nbsp;        带来更好的用户体验?br>?nbsp;        可以把以前一些服务器负担的工作{嫁到客户端,利用客户端闲|的能力来处理,减轻服务器和带宽的负担,节约I间和宽带租用成本?br>?nbsp;        可以调用外部数据?br>?nbsp;        Z标准化的q被q泛支持的技术,不需要下载插件或者小E序?br>?nbsp;        q一步促q页面呈现和数据的分R?br>四、谁在用AJAX<br>在应用AJAX开发上面,Google当仁不让是表率。Orkut、Gmail、Google Groups、Google Maps、Google Suggest都应用了q项技术。Amazon的A9.com搜烦引擎也采用了cM的技术?br>微Y也在U极开发更为完善的AJAX应用Q它卛_推出代号为Atlas的AJAX工具。Atlas的功能超了AJAX本nQ包括整合Visual Studio的调试功能。另外,新的ASP.NET控g客户端控件与服务器端代码的捆l更为简ѝAtlas客户脚本框架QAtlas Clent Script FrameworkQ也使与|页及相关项目的交互更ؓ便利。但Visual Studio 2005中ƈ不包含此功能?br>微Y最q宣布Atlas客户脚本框架包含如下内容(详细资料误问Atlas计划|站Q:<br>* 一个可扩展的核心框Ӟ它添加了JavaScript功能Q如生命同时期管理、承管理、多点传送处理器和界面管理?br>* 一个常见功能的基本cdQ有丰富的字W串处理、计时器和运行Q务?br>* 为HTML附加动态行为的用户界面框架?br>* 一l用来简化服务器q通和|络讉K的网l堆栈?br>* 一l丰富的用户界面开发控Ӟ如:自动完成的文本框、动d拖放?br>* 处理览器脚本行为差异的览器兼容层面?br>典型的,微YAJAX技术应用在MSN Space上面。很多h一直都对MS Space服务感到很奇怪,当提交回复评Z后,览器会暂时停顿一下,然后在无h的情况下把我提交的评论显C出来。这个就是应用了AJAX的效果。试惻I如果d一个评论就要重新刷新整个页面,那可真费事?br>目前QAJAX应用最普遍的领域是GIS-Map斚w。GIS的区域搜索强调快速响应,AJAX的特Ҏ好符合这U需求?br>五、用AJAX改进你的设计<br>AJAX虽然可以实现无刷新更新页面内容,但是也不是什么地斚w可以用,主要应用在交互较多、频J读数据、数据分c良好的Web应用中。现在,让我们D两个例子Q看看如何用AJAX改进你的设计?br>例子1Q数据校?br>在输入form表单内容的时候,我们通常需要确保数据的唯一性。因此,常常在页面上提供“唯一性校?#8221;按钮Q让用户点击Q打开一个校验小H口Q或者等form提交到服务器端,由服务器判断后在q回相应的校验信息。前者,window.open操作本来是比较耗费资源的,通常由window. showModalDialog代替Q即使这样也要弹Z个对话框Q后者,需要把整个面提交到服务器q由服务器判断校验,q个q程不仅旉长而且加重了服务器负担。而用AJAXQ这个校验请求可以由XMLHttpRequest对象发出Q整个过E不需要弹出新H口Q也不需要将整个面提交到服务器Q快速又不加重服务器负担?br>例子2Q按需取数据—联菜?br>以前Qؓ了避免每ơ对菜单的操作引L重蝲面Q不采用每次调用后台的方式,而是一ơ性将U联菜单的所有数据全部读取出来ƈ写入数组Q然后根据用L操作用JavaScript来控制它的子集项目的呈现Q这栯然解决了操作响应速度、不重蝲面以及避免向服务器频繁发送请求的问题Q但是如果用户不对菜单进行操作或只对菜单中的一部分q行操作的话Q那d的数据中的一部分׃成ؓ冗余数据而浪费用L资源Q特别是在菜单结构复杂、数据量大的情况下(比如菜单有很多、每一U菜又有上百个项目)Q这U弊端就更ؓH出?br>现在应用AJAXQ在初始化页面时我们只读出它的第一U的所有数据ƈ昄Q在用户操作一U菜单其中一ҎQ会通过Ajax向后台请求当前一U项目所属的二子菜单的所有数据,如果再l请求已l呈现的二菜单中的一ҎQ再向后面请求所操作二菜单对应的所有三U菜单的所有数据,以此cL……q样Q用什么就取什么、用多少取多少Q就不会有数据的冗余和浪费,减少了数据下载总量Q而且更新面时不用重载全部内容,只更新需要更新的那部分即可,相对于后台处理ƈ重蝲的方式羃短了用户{待旉Q也把对资源的浪贚w到最低?br>例子3Q读取外部数?br>AJAX可以调用外部数据Q因此,可以对一些开发的数据比如XML文档、RSS文档q行二次加工Q实现数据整合或者开发应用程序?br>六、AJAX的缺?br>AJAX不是完美的技术。用AJAXQ它的一些缺陷不得不权衡一下:<br>?nbsp;        AJAX大量使用了Javascript和AJAX引擎Q而这个取决于览器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持QMozilla虽然也支持AJAXQ但是提供XMLHttpRequest的方式不一栗所以,使用AJAX的程序必L试针对各个浏览器的兼Ҏ?br>?nbsp;        AJAX更新面内容的时候ƈ没有h整个面Q因此,|页的后退功能是失效的Q有的用戯l常搞不清楚现在的数据是旧的q是已经更新q的。这个就需要在明显位置提醒用户“数据已更?#8221;?br>?nbsp;        Ҏ媒体的支持没有FLASH、Java Applet好?br>?nbsp;        一些手持设备(如手机、PDA{)现在q不能很好的支持Ajax?br>七、AJAX开?br>到这里,已经可以清楚的知道AJAX是什么,AJAX能做什么,AJAX什么地方不好。如果你觉得AJAX真的能给你的开发工作带来改q的话,那么l箋看看怎么使用AJAX吧?br>7.1、AJAX应用到的技?br>AJAX涉及到的7Ҏ术中Q个为Javascript、XMLHttpRequest、DOM、XML比较有用?br>A、XMLHttpRequest对象<br>XMLHttpRequest是XMLHTTPlg的对象,通过q个对象QAJAX可以像桌面应用程序一样只同服务器q行数据层面的交换,而不用每ơ都h界面Q也不用每次数据处理的工作都交l服务器来做Q这h减轻了服务器负担又加快了响应速度、羃短了用户{待的时间?br>IE5.0开始,开发h员可以在Web面内部使用XMLHTTP ActiveXlg扩展自n的功能,不用从当前的Web面D可以直接传输数据到服务器或者从服务器接收数据?Mozilla1.0以及NetScape7则是创徏l承XML的代理类XMLHttpRequestQ对于大多数情况QXMLHttpRequest对象和XMLHTTPlg很相|Ҏ和属性类|只是部分属性不同?br>XMLHttpRequest对象初始化:<br> XMLHttpRequest对象的方法:<br>Ҏ    描述<br>abort()    停止当前h<br>getAllResponseHeaders()    作ؓ字符串返回完整的headers<br>getResponseHeader("headerLabel")    作ؓ字符串返回单个的header标签<br>open("method","URL"[,asyncFlag[,"userName"[, "password"]]])    讄未决的请求的目标 URLQ方法,和其他参?br>send(content)    发送请?br>setRequestHeader("label", "value")    讄headerq和h一起发?br>XMLHttpRequest对象的属性:<br>属?nbsp;   描述<br>onreadystatechange    状态改变的事g触发?br>readyState    对象状?integer):<br>0 = 未初始化<br>1 = d?br>2 = 已读?br>3 = 交互?br>4 = 完成<br>responseText    服务器进E返回数据的文本版本<br>responseXML    服务器进E返回数据的兼容DOM的XML文档对象<br>status    服务器返回的状态码, 如:404 = "文g未找? ?00 ="成功"<br>statusText    服务器返回的状态文本信?br>B、Javascript<br>Javascript一直被定位为客L的脚本语aQ应用最多的地方是表单数据的校验。现在,可以通过Javascript操作XMLHttpRequestQ来跟数据库打交道?br>C、DOM<br>DOMQDocument Object ModelQ是提供lHTML和XML使用的一lAPIQ提供了文g的表q结构,q可以利用它改变其中的内容和可见物。脚本语a通过DOM才可以跟面q行交互。Web开发h员可操作及徏立文件的属性、方法以及事仉以对象来展现。比如,document׃表页面对象本w?br>D、XML<br>通过XMLQExtensible Markup LanguageQ,可以规范的定义结构化数据Q是|上传输的数据和文档W合l一的标准。用XML表述的数据和文档Q可以很Ҏ的让所有程序共享?br>7.2、AJAX开发框?br>q里Q我们通过一步步的解析,来Ş成一个发送和接收XMLHttpRequesth的程序框架。AJAX实质上也是遵循Request/Server模式Q所以这个框架基本的程也是Q对象初始化à发送请?#224;服务器接?#224;服务器返?#224;客户端接?#224;修改客户端页面内宏V只不过q个q程是异步的?br>A、初始化对象q发出XMLHttpRequesth<br>Z让Javascript可以向服务器发送HTTPhQ必M用XMLHttpRequest对象。用之前,要先XMLHttpRequest对象实例化。之前说q,各个览器对q个实例化过E实C同。IE以ActiveX控g的Ş式提供,而Mozilla{浏览器则直接以XMLHttpRequestcȝ形式提供。ؓ了让~写的程序能够跨览器运行,要这样写Q?br>if (window.XMLHttpRequest) { // Mozilla, Safari, ...<br>    http_request = new XMLHttpRequest();<br>} else if (window.ActiveXObject) { // IE<br>    http_request = new ActiveXObject("Microsoft.XMLHTTP");<br>}<br>有些版本的Mozilla览器处理服务器q回的未包含XML mime-type头部信息的内Ҏ会出错。因此,要确保返回的内容包含text/xml信息?br>http_request = new XMLHttpRequest();<br>http_request.overrideMimeType('text/xml');<br>B、指定响应处理函?br>接下来要指定当服务器q回信息时客L的处理方式。只要将相应的处理函数名U赋lXMLHttpRequest对象的onreadystatechange属性就可以了。比如:<br>http_request.onreadystatechange = processRequest;<br>需要指出的Ӟq个函数名称不加括号Q不指定参数。也可以用Javascriptx定义函数的方式定义响应函数。比如:<br>http_request.onreadystatechange = function() {<br>};<br>C、发出HTTPh<br>指定响应处理函数之后Q就可以向服务器发出HTTPh了。这一步调用XMLHttpRequest对象的open和sendҎ?br>http_request.open('GET', 'http://www.example.org/some.file', true);<br>http_request.send(null);<br>open的第一个参数是HTTPh的方法,为Get、Post或者Head?br>对于 GET hQ?null 值或I字W串“”?<br>POST h包含一个带有表单数据的字符串参数。它们也要求在请求的标题中设|?Content-Type?br><br>W二个参数是目标URL。基于安全考虑Q这个URL只能是同|域的,否则会提C?#8220;没有权限”的错误。这个URL可以是Q何的URLQ包括需要服务器解释执行的页面,不仅仅是静态页面?br>W三个参数只是指定在{待服务器返回信息的旉内是否l执行下面的代码。如果ؓTrueQ则不会l箋执行Q直到服务器q回信息。默认ؓTrue?br>按照序Qopen调用完毕之后要调用sendҎ。send的参数如果是以Post方式发出的话Q可以是M想传l服务器的内宏V?br>不过Q跟form一P如果要传文gl服务器Q必d调用setRequestHeaderҎQ修改MIMEcd。如下:<br>http_request.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);<br>req.send("name=scott&email=stiger@foocorp.com");<br>D、处理服务器q回的信?br>在第二步我们已经指定了响应处理函敎ͼq一步,来看看这个响应处理函数都应该做什么?br>首先Q它要检查XMLHttpRequest对象的readyState|判断h目前的状态。参照前文的属性表可以知道QreadyStategؓ4的时候,代表服务器已l传回所有的信息Q可以开始处理信息ƈ更新面内容了。如下:<br>if (http_request.readyState == 4) {<br>    // 信息已经q回Q可以开始处?br>} else {<br>    // 信息q没有返回,{待<br>}<br>服务器返回信息后Q还需要判断返回的HTTP状态码Q确定返回的面没有错误。所有的状态码都可以在W3C的官方网站上查到。其中,200代表面正常?br>if (http_request.status == 200) {<br>    // 面正常Q可以开始处理信?br>} else {<br>    // 面有问?br>}<br>XMLHttpRequestҎ功返回的信息有两U处理方式:<br>responseTextQ将传回的信息当字符串用;<br>responseXMLQ将传回的信息当XML文档使用Q可以用DOM处理?br><br>function processXMLResponse() {  if (req.readyState == 4) { if (request.status != 200) {// Process the XML response       }   } }<br>XML 响应的处理是通过使用标准 Javascript DOM Ҏ完成的。例如,要从输入?XML 中抽取员工姓名Q?<br><employee> Chris  </employee><br>您可以用以下代码: <br>var name = req.responseXML.getElementsByTagName("employee")[0];<br>分析更ؓ复杂?XML 会用如下代码P代元素: <br><br><br><br>for (i=0;i<elements.length;i++) {<br>for (j=0;j<elements[i].childNodes.length;j++) {<br>var ElementData = elements[i].childNodes[j].firstChild.nodeValue;   } <br> }<br>E、一个初步的开发框?br>ȝ上面的步骤,我们整理Z个初步的可用的开发框Ӟ供以后调用;q里Q将服务器返回的信息用window.alert以字W串的Ş式显C出来:<br><script language="javascript"><br>    var http_request = false;<br>    function send_request(url) {//初始化、指定处理函数、发送请求的函数<br>        http_request = false;<br>        //开始初始化XMLHttpRequest对象<br>        if(window.XMLHttpRequest) { //Mozilla 览?br>            http_request = new XMLHttpRequest();<br>            if (http_request.overrideMimeType) {//讄MiMEcd<br>                http_request.overrideMimeType("text/xml");<br>            }<br>        }<br>        else if (window.ActiveXObject) { // IE览?br>            try {<br>                http_request = new ActiveXObject("Msxml2.XMLHTTP");<br>            } catch (e) {<br>                try {<br>                    http_request = new ActiveXObject("Microsoft.XMLHTTP");<br>                } catch (e) {}<br>            }<br>        }<br>        if (!http_request) { // 异常Q创建对象实例失?br>            window.alert("不能创徏XMLHttpRequest对象实例.");<br>            return false;<br>        }<br>        http_request.onreadystatechange = processRequest;<br>        // 定发送请求的方式和URL以及是否同步执行下段代码<br>        http_request.open("GET", url, true);<br>        http_request.send(null);<br>    }<br>    // 处理q回信息的函?br>    function processRequest() {<br>        if (http_request.readyState == 4) { // 判断对象状?br>            if (http_request.status == 200) { // 信息已经成功q回Q开始处理信?br>                alert(http_request.responseText);<br>            } else { //面不正?br>                alert("您所h的页面有异常?);<br>            }<br>        }<br>    }<br></script><br><br> 7.3、简单的CZ<br>接下来,我们利用上面的开发框架来做两个简单的应用?br>A、数据校?br>在用h册的表单中,l常到要检验待注册的用户名是否唯一。传l的做法是采用window.open的弹出窗口,或者window. showModalDialog的对话框。不q,q两个都需要打开H口。采用AJAX后,采用异步方式直接参数提交到服务器,用window.alert服务器q回的校验信息显C出来。代码如下:<br>在之间增加一Dform表单代码Q?br> <br>在开发框架的基础上再增加一个调用函敎ͼ<br>function userCheck() {<br>    var f = document.form1;<br>    var username = f.username.value;<br>    if(username=="") {<br>        window.alert("用户名不能ؓI?);<br>        f.username.focus();<br>        return false;<br>    }<br>    else {<br>        send_request('sample1_2.jsp?username='+username);<br>    }<br>}<br>看看sample1_2.jsp做了什么:<br><%@ page contentType="text/html; charset=gb2312" errorPage="" %><br><%<br>String username = request.getParameter("username");<br>if("educhina".equals(username)) out.print("用户名已l被注册Q请更换一个用户名?);<br>else out.print("用户名尚未被使用Q您可以l箋?);<br>%><br>q行一下,嗯,没有弹出H口Q没有页面刷斎ͼ跟预想的效果一栗如果需要的话,可以在sample1_2.jsp中实现更复杂的功能。最后,只要反馈信息打印出来就可以了?br>  <br>B、联菜?br>我们在第五部分提到利用AJAX改进U联菜单的设计。接下来Q我们就演示一下如?#8220;按需取数?#8221;?br>首先Q在<body></body>中间增加如下HTML代码Q?br><table width="200" border="0" cellspacing="0" cellpadding="0"><br>    <tr><br>        <td height="20"><br>            <a href="javascript:void(0)" onClick="showRoles('pos_1')">l理?lt;/a><br>        </td><br>    </tr><br>    <tr style="display:none"><br>        <td height="20" id="pos_1">&nbsp;</td><br>    </tr><br>    <tr><br>        <td height="20"><br>            <a href="javascript:void(0)" onClick="showRoles('pos_2')">开发部</a><br>        </td><br>    </tr><br>    <tr style="display:none "><br>        <td id="pos_2" height="20">&nbsp;</td><br>    </tr><br></table><br>在框架的基础上增加一个响应函数showRoles(obj)Q?br>//昄部门下的岗位<br>function showRoles(obj) {<br>    document.getElementById(obj).parentNode.style.display = "";<br>    document.getElementById(obj).innerHTML = "正在d数据..."<br>    currentPos = obj;<br>    send_request("sample2_2.jsp?playPos="+obj);<br>}<br>修改框架的processRequest函数Q?br>// 处理q回信息的函?br>function processRequest() {<br>  if (http_request.readyState == 4) { // 判断对象状?br>    if (http_request.status == 200) { // 信息已经成功q回Q开始处理信?br>    document.getElementById(currentPos).innerHTML = http_request.responseText;<br>    } else { //面不正?br>      alert("您所h的页面有异常?);<br>    }<br>  }<br>}<br>最后就是smaple2_2.jsp了:<br><%@ page contentType="text/html; charset=gb2312" errorPage="" %><br><%<br>String playPos = request.getParameter("playPos");<br>if("pos_1".equals(playPos)) <br>out.print("&nbsp;&nbsp;ȝ?lt;br>&nbsp;&nbsp;副ȝ?);<br>else if("pos_2".equals(playPos)) <br>out.println("&nbsp;&nbsp;dE师<br>&nbsp;&nbsp;软g工程?);<br>%><br>q行一下看看效果:<br>  <br>参考文章:<br>作者:    fanscial    标题Q?nbsp;   《AJAX介?br>|址Q?nbsp;   http://www.tkk7.com/fanscial/archive/2005/08/31/11628.html<br><br>作者:    Amour GUO    标题Q?nbsp;   《AJAX内部交流文档?br>|址Q?nbsp;   http://www.dragonson.com/doc/ajax.html<br><br>作者:    MoztwWiki    标题Q?nbsp;   《AJAX上手?br>|址Q?nbsp;   http://wiki.moztw.org/index.php/AJAX_%E4%B8%8A%E6%89%8B%E7%AF%87<br><br> <br><br><br><br>Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=587041<br><br><br> <br> <img src ="http://www.tkk7.com/cgogg/aggbug/122311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:01 <a href="http://www.tkk7.com/cgogg/articles/AJAX.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AjAX核心大纲http://www.tkk7.com/cgogg/articles/123783.htmlchenguochenguoWed, 13 Jun 2007 01:58:00 GMThttp://www.tkk7.com/cgogg/articles/123783.htmlhttp://www.tkk7.com/cgogg/comments/123783.htmlhttp://www.tkk7.com/cgogg/articles/123783.html#Feedback0http://www.tkk7.com/cgogg/comments/commentRss/123783.htmlhttp://www.tkk7.com/cgogg/services/trackbacks/123783.html       (一)事g处理函数Q按照以下顺序处理下列事务:
                a) 初始化XMLHttpRequest对象Q?br>                 实现代码如下:
                  if(widow.XMLHttpRequest) {//Mozilla,Safari,.......
                    http_request= new XMLHttpRequest();
                    } else if(window.ActiveXObject) {//IE
                    http_request= new ActiveXObject("Microsoft.XMLHTTP");
                    } else {
                       window.alert("览器没有实现XMLHttpRequest lg对象!");
                    }
                b) 讄XMLHttpRequest对象的onreadystatechange 属?指定服务器返回响应数据时要调用的回调函数Q?x定响应处理函敎ͼ
                实现代码如下:
                 http_request.onreadystatechange=processRequest;
                c) 调用XMLHttpRequest对象的openҎ,创徏httphQ?br>                  实现代码如下:
                   http_request.open("GET", "http://www.example.org/some.file", true);
                 d) 调用XMLHttpRequest对象的setRequestHeader{方?讄必要的httph头信息;
                   实现代码如下:
                    http_request.setRequestHeader("Content-Type",application/x-www-form-urlencoded);
                 e) 调用XMLHttpRequest对象的sendҎ,发送之前创建的httphQ?br>                   实现代码如下:
                   http_request.send(null);
                 f)  ҎXMLHttpRequest对象的openҎ参数,军_是否{待服务器返回响应数?
     (?回调函数(响应处理函数)执行以下事务Q?br>    aa) 判断httph的状?q作相应处理;
                bb) 调用XMLHttpRequest对象的responseXML or responseTextҎ,服务器q回的响应数据赋予Javascript变量或对?
                cc) 使用DOM或其它方式解析服务器q回的响应数据,保存在缓存变量或数组中;
                dd) 使用DOM解析HTML文档Q定位目标HTML文档节点;
                ee)  使用解析完毕的服务器q回的响应数?更新上一步解{分析HTML文档节点的属性值或内容,从而更新HTML文档面内容.


Ajax控g和类库简?br>
【导诅RAjax控g和类库现在真的太多了Q本人对Ajax的观?Ajax和服务器端技术毫不相?DOM模型是Ajax最本质的技?要学好JavaScriptQ在使用Ajax控g前理解它们的实现……
 
 
 

Ajax控g和类库现在真的太多了Q不知不觉中增加了Ajax的神U性和复杂性,谈谈本h对Ajax的观点,希望能让大家对Ajax有一个本质的认识?br>
观点一QAjax和服务器端技术毫不相?br>
? 格的_与传lweb开发相比,Ajax是完完全全的客户端技术。由于很多控件封装了客户端和服务器端的通信q程Q因此很多问题也因通信而v。事实上Q不 ZUAjax技术,服务器端都是q回的一个纯文本,再由客户端来处理q个文本。这D|本可以是xml格式Q也可以是一个Html片段Q也可以是一D? JavaScript脚本Q或者仅是一个字W串。服务器端仅仅是作ؓ一个数据接口,客户端用XMLHttpRequest对象来请求这个页面,服务器端 在页面内写入l果文本Q这个过E和普通的web开发没有Q何区别。所不同的只是,客户端在异步获取l果后,不是直接昄在页面,而是由客L? Javascript脚本处理后再昄在页面。至于各U控件所谓的能返回DataSet对象QDate对象Q或者其他的数据cdQ都是封装了q个处理q程 的结果?br>
观点二:DOM模型是Ajax最本质的技?br>
之所以没有把XMLHttpRequest列ؓ最本质的技术,因ؓ? 得它实在是太单了Q它只是可以让浏览器在后台请求一个页面,q将其内容交lJavaScript处理。真正的核心应该是:DOM模型Q即文档对象? 型。在DOM模型里,Html标记都被认ؓ是一个对象,例如Qdiv对象Qtable对象{等。DOM模型p定了q些对象所h的属性、方法和事g。? q这些性质Q可以对一个已l显CZ览器的面q行内容的修改,例如增加节点、修改节点位|,删除节点{等。而不仅仅是一个innerHTML属性这么简 单,虽然q是一个很有用的属性?br>
观点三:在用Ajax控g前理解它们的实现

使用Ajax控g的确可以提高效率Q但如果 你空中楼阁般使用控gQ那得不偿׃。从一个控件换到另外一个控件又会有一个O长的学习曲线。所以应该从底层了解Ӟ况且Ajax实在不是什么高q技 术。其实Q何东西的最底层其实都是单的Q但如果装了这些底层的东西Q事情会变得复杂和难以理解。以Asp.netZQ它的定制特性可以得只要在? 法前加上[ajax method]cMq样的标志就可以UCؓ一个异步方法,怿q得Asp.net的Ajax开发显得更?#8220;高效”或者是“秘”Q而更多的事情则被装 了。同栯住一条,MҎ务器端的h仅仅是返回纯文本Q我们不一定要依赖于封装好的处理过E,而完全可以自己来实现?br>
观点四:学好JavaScript

? 大多Ch看来QJavaScriptM是那么一U正规的语言Q随便copy一D就y能运行,学过c之类的hQ一看也能看懂,而且在浏览器中常常有脚本 错误提示Q所以潜意识觉得M能付之以大Q。事实上Q要学好AjaxQ这完全是一U错误的看法。javascript作ؓ一U脚本语aQ其语法的确不是 很严|但ƈ不妨其完成诸多复杂的Q务,没有JavaScriptQ就没有Ajax。所以本人强烈徏议,学Ajax前,一定要好好研究一? JavaScriptQ一般来Ԍ如果能顺利看懂prototype框架的代码(如:prototype-1.3.1.jsQ,你的JavaScript 水^基本过关了。同时对DOM模型也可以算有一个基本的了解?br>
观点五:Ajax点缀QCSS

用JavaScript? 制CSS其实很简单,基本上每个DOM对象都有一个style对象Q只要把css属性里?-"LQƈ让随后的字母变ؓ大写可以作为属性用了Q例 如:element.style.backgroundColor="#f00";在css是:选择W?{background-color:#f00}


chenguo 2007-06-13 09:58 发表评论
]]>
վ֩ģ壺 պ߹ۿ| һ| þþþùɫAVѹۿɫ | ۺҹ| ޾ƷһۺϾԴ| AVƬ| ֻùۿ| ĻӰѹۿַ| ѹۿԭվ| Ʒҹѹۿ| ѴƬ߹ۿվ| ձĻһ| AVרAWWW | 99reѾƷƵۿ| www.999ƷƵۿ| Ƶѹۿ| ɫƬѹۿ| ޹˾ƷŮ˾þþ| Ʒһ߹ۿ| Ʒһ | ޳| ѹۿƵ| Ʒҹ| ѿavһ| ֻˬʹƬҹ | רһ·߶| 18ҹ˿| ˸徫Ʒѹۿ| һƬaѲſ| 24СʱƵ| ѿ߿Aվ| һƵ| ޳avѿ| ޾ƷþëƬҰ | ɫ7777Ƶ߹ۿ| 91Ʒѹۿ| ޹˾þһWWW| A޾VƷ| ޹ۺ˳ۺվ00| δav | AVһ|