利用ASP发送和接收XML数据的处理方法与代码,脚本控制自适应高度的缩短问题

tableSort.class.js

因为要做移动梦网WAP的一些接口,所以要用到这种方式,接下来会有ASP.net版本的,这个是ASP版本的,利用了MSXML2.XMLHTTP对像。  
request.asp

function vvheight() {
       var sideleft=document.getElementById(“content-left”).scrollHeight;
       var sideright=document.getElementById(“content-right”).scrollHeight;
       layoutHeight=Math.max(sideleft,sideright);
       document.getElementById(“content-left”).style.height=layoutHeight+”px”;
       document.getElementById(“content-right”).style.height=layoutHeight+”px”;
}

复制代码 代码如下:

复制代码 代码如下:

我想用脚本来控制自适应高度,我用上面的代码控制了左列和右列的自适应高度。
可是有的页面因为内容多被撑得挺长,有的页面内容少,用上面的代码不能缩短了!
我就是想在访问内容少的时候,内容还能再缩回来,代码应该怎么写呢?谢谢了!

/*
*    表格名不能为空,可为已获取的对象或名字
*    表头名默认为:tag
*    通过自行编写接口可实现不同的触发排序方式
*    
*    作者:Auntion
*    E-mail:Auntion@Gmail.com
*    OICQ:82874972
*    
*    日期:2007年04月22日 – 测试 – 待修正
*/

dim Https  
set Https=server.createobject(“MSXML2.XMLHTTP”) 
‘定义一个XMLHTTP对像 
Https.open “POST”,” 
Https.send “<?xml version=””1.0″”?><misc_command version=””1.6″”><command_name>echo</command_name> 
<command_data_block><sid>123456</sid><service_id>987654</service_id> 
<sp_id>11111</sp_id><sp_password>22222</sp_password></command_data_block> 
</misc_command>” 
if Https.readystate=4 then 
 response.write “提交成功” 
 ’readstate读取状态为4则成功,继续后面的,不成功当然就不用继续处理了 
 dim objstream  
 set objstream = Server.CreateObject(“adodb.stream”) 
 ’定义一个stream,因为读过来的直接拿出来是乱码的,所以得处理一下 
 objstream.Type = 1  
 objstream.Mode =3  
 objstream.Open  
 objstream.Write Https.responseBody  
 objstream.Position = 0  
 objstream.Type = 2  
 objstream.Charset = “GB2312”  
 html = objstream.ReadText 
 ’转好码,就放到html里,好关闭这些对像 
 objstream.Close  
 set objstream = nothing  
 set https=nothing 
end if 
response.write html 

复制代码 代码如下:

var tableSort= function(element,tagName,upStyle,downStyle){this.table= (typeof(element) == ‘string’) ? TAGDom.fromId(element) : element;this.td   = this.table.getElementsByTagName(“td”);    this.hName= (tagName.length<1) ? “tag” : tagName;this.rows = this.table.rows;this.byUp = (upStyle == undefined) ? “DescUp” : upStyle ;this.byDown = (downStyle == undefined) ? “DescDown” : downStyle ;var totalTd = [];var totalNr = [];var totalTag= [];this.tempCellIndex;    this.tempStatus = {};var setAllTag = function(){                    for(var i = 0; i < this.td.length; i++){if(this.td[i].className === this.hName) totalTag.push(this.td[i]);}}.bind(this);var getStatus = function(tagName){this.tempStatus[tagName] = (this.tempStatus[tagName] == true) ? false : true;for(tags in this.tempStatus){if(tags == tagName) return this.tempStatus[tags];else delete this.tempStatus[tags];}}.bind(this);var changeShow = function(cellIn,status){for(var i=0; i<totalTag.length; i++){if(totalTag[i].cellIndex == cellIn){if(status == true) totalTag[i].className = this.byUp;else if(status == false) totalTag[i].className = this.byDown;}else{totalTag[i].className = this.hName;}}}.bind(this);var startSort = function(status){for (var i = totalNr[this.tempCellIndex].length – 1; i > 0; i–){for (var j = 0; j < i; ++j){if ( (status == true) ? totalNr[this.tempCellIndex][j] > totalNr[this.tempCellIndex][j + 1] : totalNr[this.tempCellIndex][j] < totalNr[this.tempCellIndex][j + 1] ){var temp = totalNr[this.tempCellIndex][j + 1];totalNr[this.tempCellIndex][j + 1] = totalNr[this.tempCellIndex][j];totalNr[this.tempCellIndex][j] = temp;for(var n=0; n<totalNr.length; n++){if(n != this.tempCellIndex){var temps = totalNr[n][j+1];totalNr[n][j + 1] = totalNr[n][j];totalNr[n][j] = temps;}}}}};InsertContect();}.bind(this);var InsertContect = function(){                for(var i=0; i<totalTd.length; i++){for(var j=0; j<totalTd[i].length; j++){totalTd[i][j].innerHTML = totalNr[i][j];}};totalTd.length = 0;totalNr.length = 0;};this.init = function(status){for(var i=0; i<(this.td.length/this.rows.length); i++){totalTd[i] = new Array();totalNr[i] = new Array();for(var j=0; j<this.rows.length; j++){if(this.rows[j].cells[i].className !== this.hName){totalTd[i][j-1] = this.rows[j].cells[i];if(IsNumber(this.rows[j].cells[i].innerHTML) == true){totalNr[i][j-1] = parseInt(this.rows[j].cells[i].innerHTML);}else{totalNr[i][j-1] = this.rows[j].cells[i].innerHTML;}}}}startSort(status);}    

response.asp 

function vvheight() {
    var CL=document.getElementById(“content-left”);
    var CR=document.getElementById(“content-right”);
    while(parseInt(CL.scrollHeight)==parseInt(CL.style.height)){CL.style.height=parseInt(CL.style.height)-30+”px”}
    var sideleft=CL.scrollHeight;
    while(parseInt(CR.scrollHeight)==parseInt(CR.style.height)){CR.style.height=parseInt(CR.style.height)-30+”px”}
    var sideright=CR.scrollHeight;
    layoutHeight=Math.max(sideleft,sideright);
    CL.style.height=layoutHeight+”px”;
    CR.style.height=layoutHeight+”px”;
}

/********************************************************************************************************************************/

‘创建DOMDocument对象 
Set xml = Server.CreateObject (“msxml2.DOMDocument”) 
xml.async = False 

解答:
在IE和Opera里,DIV的style.overflowY的默认值是”auto”,上面的代码不会有问题。

/**通过点击标签触发排序事件**/
    //public: 通过默认鼠标事键触发 (interface example)(设置用户接口的范例)
    this.toTagStart = function(){        
        setAllTag();    //获取标签
        for(var i=0; i<totalTag.length; i++){        
            totalTag[i].sIndex  = function(cIndex){ this.tempCellIndex=cIndex }.bind(this);    //设置列index
            totalTag[i].gStatus = function(values){ return getStatus(values) };                //获取与设置状态
            totalTag[i].ceShow  = function(i,s){ changeShow(i,s) };                            //改变显示的东西
            totalTag[i].stSort  = function(status){ this.init(status) }.bind(this);            //初始化
            totalTag[i].onselectstart = function(){ return false };                //点击不选中文字
            totalTag[i].onclick = function(){
                this.sIndex(this.cellIndex);
                this.status = this.gStatus(this.firstChild.nodeValue);
                this.ceShow(this.cellIndex,this.status);
                this.stSort(this.status);
            }

‘装载POST数据  
xml.Load Request  
If xml.parseError.errorCode <> 0 Then  
 response.write “不能正确接收数据” & “Description: ” & xml.parseError.reason & “<br>Line: ” & xml.parseError.Line 
End If 

在Firefox和Safari里,DIV的style.overflowY的默认值是””(相当于”hidden”),所以你直接用上面代码的话,会出错。需要人为调整style.overflowY=”auto”。

        }
    }

set blogchild=xml.getElementsByTagName(“misc_command”) 
‘the_text=blogchild.item(0).childnodes(1).text 
‘the_text=blogchild.item(0).text 
‘for i=0 to blogchild.length-1 
response.write the_text    

根石家,根雕,木雕

}

利用这种方法,ASP里调用Servlet或Web Service都是很轻松的!

内容left 内容left 内容left 内容left 内容left 内容left 内容left 内容left
内容left 内容left 内容left

Language.ext.js

  • 55×65
  • 60×80
  • 90×90
  • 110×73
  • 118×53
  • 146×53
  • 170×65
  • 其它

复制代码 代码如下:

/*
*
By Auntion

QQ:82874972

Blog:Auntion@blogbus.com

Email:Auntion@Gmail.com

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注