跨浏览器的脚本

emu 2002-12-06 06:43:40
要写一个在IE上只能输入正数的input,这里不会的人不多吧?

要写一个在IE和netscape上都只能输入正数的input呢?我是折腾了好半天才写来的,看着也不是很满意,似乎该更简练一点(IE5、NS6.2通过):

------------------------------------------------
test: float<input onkeypress="return checkFloat(event)">
<BR>
test: int<input onkeypress="return checkInt(event)">

<SCRIPT LANGUAGE="JavaScript">
<!--
function checkInt(e){
var code = (document.all)?(e.keyCode):(e.which)
if (code==0 || code==8) return true;
var ch=String.fromCharCode(code)
return ("0123456789".indexOf(ch)>-1)
}

function checkFloat(e){
var code = (document.all)?(e.keyCode):(e.which)
if (code==0 || code==8) return true;
var ch=String.fromCharCode(code)
var elm = (document.all)?(e.srcElement):(e.target)
return ("0123456789".indexOf(ch)>-1 || (ch=="." && elm.value.indexOf(".")==-1))
}

//-->
</SCRIPT>
------------------------------------------------


现在大家讨论脚本问题的时候基本都是基于IE的,但是很多对外的项目需要面对的是IE、NS,也许还有其他的。一旦遇到了跨浏览器的问题的时相信很多人都象我一样会有点茫然。所以我发这个帖子希望大家总结一下跨浏览器的脚本怎么写。

我自己现在正在作一个跨浏览器的项目,遇到了有代表性的问题我自己也会在下面帖出来。大家支持一下呵。

...全文
524 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
finerain 2003-04-15
  • 打赏
  • 举报
回复
关注
mindon 2003-04-03
  • 打赏
  • 举报
回复
养成使用习惯
id: document.getElementById("myidstring");
form: document.forms["formname"];
form input: document.forms["formname"].inputName
form input: var myform = document.forms["formname"]; myform["inputName"].value
frame: parent.frames["framename"];
emu_ston 2003-04-03
  • 打赏
  • 举报
回复
emu: function setFrameWidth(str1,str2){
top.document.getElementsByTagName('FRAMESET')[1].cols=str1
+","+str2;
if (document.all==null) {

top.setTimeout("top.frames[2].document.location='"+top.fram
es[2].document.location+"'",1000);

top.setTimeout("top.frames[1].document.location='"+top.fram
es[1].document.location+"'",1000);
with (top.document.getElementsByTagName('FRAMESET')[0])
if (rows=="66,*,19")
rows="66,*,20";
else
rows="66,*,19";
}
}
save: if (document.all==null) 。哈哈。
emu: 昨天在研究ns的框架布局问题,发现了ns的两个bug
emu: 今天又发现一个,上面的代码就是对付第三个的呵呵
save: 啊。什么呀?
emu: 一个是用脚本修改框架布局是抛出异常,捕获后再做一次就行了
emu: 第二个是修改内层框架后没有反应,再把外层的动一下就行了
emu: 第三个是动外层的框架时所有框架页面都会刷新为框架默认的页面
emu: 上面的脚本就是用一个延迟来恢复原来的页面
emu: 希望不要再有了
lanbor 2003-04-03
  • 打赏
  • 举报
回复
emu (ston) 看样子要成为NS专家了。呵呵。 支持!

不过,现在 linux下的浏览器好像越来越多了。呵呵。
emu_ston 2003-04-02
  • 打赏
  • 举报
回复
今天发现并解决了ns6的一个讨厌的bug:

<frameset rows="10,*,10">
<frame></frame>
<frameset cols="100,*">
<frame></frame>
<frame src="javascript:void(top.document.getElementsByTagName('FRAMESET')[1].cols='500,*')"></frame>
</frameset>
<frame></frame>
</frameset>

如上代码中的脚本在ns6中没有产生作用。ns6对嵌套的frameset不能正确的处理内层的格局变化。

要这样写才有用:
<frameset rows="10,*,10">
<frame></frame>
<frameset cols="100,*">
<frame></frame>
<frame src="javascript:void(top.document.getElementsByTagName('FRAMESET')[1].cols='500,*')"></frame>
</frameset>
<frame src="javascript:void(top.document.getElementsByTagName('FRAMESET')[0].rows='11,*,11')"></frame>
</frameset>

而且要注意的是,这样写不行:
<frameset rows="10,*,10">
<frame></frame>
<frameset cols="100,*">
<frame></frame>
<frame src="javascript:void(top.document.getElementsByTagName('FRAMESET')[1].cols='500,*')"></frame>
</frameset>
<frame src="javascript:void(top.document.getElementsByTagName('FRAMESET')[0].rows='10,*,10')"></frame>
</frameset>

因为ns6这回有点聪明过头,竟然知道'10,*,10'=='10,*,10'

所以我们只有把外层框架的格局变化后再变回去。
emu_ston 2003-03-31
  • 打赏
  • 举报
回复
还没在ns上用过xml呢,等有空了一定研究一下。
emu_ston 2003-03-31
  • 打赏
  • 举报
回复
大叔祖?
:)
zhjzh_zjz 2003-03-31
  • 打赏
  • 举报
回复
对于大叔组建议用xml
逍遥小贼 2003-03-28
  • 打赏
  • 举报
回复
学习中...
emu_ston 2003-03-28
  • 打赏
  • 举报
回复
把上面的内容保存为newFKtree.uue后用winrar解压,就是我刚移植到ns上的fktree(IE5,NS6通用)。

用了winzip和rar交替压缩,才终于压到一个页面能帖得下 :)
emu_ston 2003-03-28
  • 打赏
  • 举报
回复

_=_
_=_ Part 001 of 001 of file newFKtree.zip
_=_

begin 666 newFKtree.zip
M4$L#!!0````(`%-V?"[TD!Y^<!,``+47```-````;F5W1DMT<F5E+G)A<K67
M"324;?_';V,L8\G8=]GWG<;(OB1;UD)"6<:^[Q4R(T1(]C4)H6RALM8@:\0D
M.Z4D:\B^A/]-_^=Y>YY_/><]__.^USF_.?><N>:ZOI_Y7M_??8^1M3<'$Q'0
M&^\#`.3`CX'T\YT,%0#^&)"C%WW_(%$:<1@`!Z_=40$:.K[>*!1'!3A1_*\3
MO_H<383_=:*%DYNU`\KG^RM?]M#30"CX4>31?-8^D6_+<%,A5BDF@/T7\RUL
M7*W=740=G.QAABK$!^1*^!YWH<G:,BZ.ZEK&Q'!G8W><NZ^,JG)"TLV/B1@]
M/&9FRDER"BHG-Z=,/+3P4!0JT-[;]?F(!MOD12R/_%U/O:9J$WRE,*6GS)S.
M;P;)UWPG3))IJP3E>._-ZH>_O3CJ@8$??LF(B9ORFG\F+/8D26':4L%GJ[.I
M?=XD^UCY(U#D44&$9#&)Z9JB0JSBOU%NZ^KA@SI2?E9+`REK??1[5`'`X=%X
M]^T`^W&V8W`AIJ4O!8O%UK7'%#WW#@T-#4@'`"G@Y\&Q`R6@`?`!X:,WQ[\I
MU-0S1KVX(3`#>Z[+M-++\H(6['Y9288XM?*;->;^_.81`39^**N^AC$QE*BU
M(I`;GE!A5387).C.$O[`P(^3AI0:]:0TA)XJXMJY+_>LV6$[++WQ.+_KO!!`
MKN8YR"@+/`2W.BI(U<-+/73'C(R_9K1W<OTEXK_/]R<BY&=$8WBG5G@C\6PI
M:9U)FQO!BO74LQ+2+AX+7$0Y7D`5.T1+?!AIVKL5UFD0!;7&RG/3G&52SF5!
MTH86N:LU$A8P"6[63\=TUI]'1/+7?/`4<='K/0,`<BRA()X24`QN<U20.%W>
M1_3'>"=_C>=TQME&P\/5#N7]&Q\/IX-`3I"POQ$%XF7
  • M2"?A*"?J:4P+HXLG`13#9$".%Z34IB-,8=`><
  • (@4!.5.2Q$D"@
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
    M$P``M1<```T````````````@`+:!`````&YE=T9+=')E92YR87)02P4&````
    /``$``0`[````FQ,`````
    `
    end

emu_ston 2003-03-27
  • 打赏
  • 举报
回复
wsj(骆驼) :
这个我也搞不定 :)
nik_Amis 2003-03-27
  • 打赏
  • 举报
回复
super up
wsj 2003-03-27
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1574/1574002.xml?temp=.3923456

<input id=theFile type=file style="display:none">
<button onclick="var o=document.getElementById("theFile");o.click();alert(o.value)">select file</button>

在Netscape和Mozilla不起作用

PS:
Mozilla 中带的JavaScript Debugger怎么开始调试一个已打开的文档呀?
emu_ston 2003-03-24
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="emu(ston)">
<META NAME="Keywords" CONTENT="javascript,chart">
<title>emu's paint without vlm</title>
</head>
<body>
<button onclick="testDrawCurve()">画曲线</button>
<button onclick="testDrawArc()">画弧线</button>
<button onclick="testDrawCircle()">画圆</button>
<button onclick="testDrawLine()">画线</button>
<button onclick="testDrawRectangle()">画矩形</button>
<button onclick="testDrawPie()">画饼图</button>
<div id=canvas></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var div1 = document.getElementById("canvas")
function testDrawCurve()
{
div1.innerHTML = drawCurve();
}
function testDrawArc()
{
div1.innerHTML =drawArc(150,150,100,0,270,"blue")
}
function testDrawCircle()
{
div1.innerHTML = drawCircle(200,200,150,"blue");
}
function drawCircle(x0,y0,radius,color)
{
return drawArc(x0,y0,radius,0,360,color)
}
function testDrawLine()
{
div1.innerHTML = drawLine(100,200,500,200,"yellow")+drawLine(300,100,300,400,"black")+drawLine(600,400,100,100,"violet")
}
function testDrawRectangle()
{
div1.innerHTML = drawRectangle(200,100,600,200,"blue")+drawRectangle(100,200,400,500,"red")
}
function testDrawPie()
{
div1.innerHTML = drawPie(300,200,99,0,45,"red")+drawPie(300,200,99,45,110,"blue")+drawPie(300,200,99,110,250,"yellow")+drawPie(300,200,99,250,360,"green");
}

function drawLine(x0,y0,x1,y1,color)
{
var rs = "";
if (y0 == y1) //画横线
{
if (x0>x1){var t=x0;x0=x1;x1=t}
rs = "<span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";height:1; width:"+Math.abs(x1-x0)+"'></span>";
}
else if (x0 == x1) //画竖线
{
if (y0>y1){var t=y0;y0=y1;y1=t}
rs = "<span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";width:1;height:"+Math.abs(y1-y0)+"'></span>";
}
else
{
var lx = x1-x0
var ly = y1-y0
var l = Math.sqrt(lx*lx+ly*ly)
rs = new Array();
for (var i=0;i<l;i+=1)
{
var p = i/l;
var px = parseInt(x0 + lx*p);
var py = parseInt(y0 + ly*p);
rs[rs.length] = "<span style='top:"+py+";left:"+px+";height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'></span>";
}
rs = rs.join("");
}
return rs
}
function drawRectangle(x0,y0,x1,y1,color)
{
if (x0 == x1 || y0 == y1) return;
if (x0>x1) {var t=x0;x0=x1;x1=t}
if (y0>y1) {var t=y0;y0=y1;y1=t}
return "<table style='top:"+y0+";left:"+x0+";position:absolute'><td bgcolor="+color+" width="+(x1-x0)+" height="+(y1-y0)+"> </td></table>";
}
function drawPie(x0,y0,radius,startAngle,endAngle,color)
{
var rs = drawArc(x0,y0,radius,startAngle,endAngle,color)
var d=5
for (var i=d;i<radius;i+=d)
rs += drawArc(x0,y0,i,startAngle,endAngle,color,d)
startAngle = startAngle/360*Math.PI*2;
endAngle = endAngle/360*Math.PI*2;
var startx=Math.sin(startAngle)*radius+x0;
var starty=Math.cos(startAngle)*radius+y0;
rs += drawLine(x0,y0,startx,starty,color)
// var endx=Math.sin(endAngle)*radius+x0;
// var endy=Math.cos(endAngle)*radius+y0;
//rs += drawLine(x0,y0,endx,endy,color)
return rs;
}
function drawArc(x0,y0,radius,startAngle,endAngle,color,step)
{
if (step == null || isNaN(step)) step=1;
rs = new Array();
tmpar = new Array();
startAngle = startAngle/360*Math.PI*2;
endAngle = endAngle/360*Math.PI*2;
for (var i=startAngle;i<endAngle;i+=(step/radius))
{
var dx = parseInt(Math.sin(i)*radius+x0);
var dy = parseInt(Math.cos(i)*radius+y0);
rs[rs.length] = "<span style='top:"+dy+";left:"+dx+";position:absolute;height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'></span>";
}
return (rs.join(""));
}
function drawCurve()
{
var rs = new Array();
for (var i=0;i<2*Math.PI;i+=.01)
{
var x = parseInt(300-Math.sin(i)*100)
var y = parseInt(300-Math.cos(i)*100)
rs[rs.length] = "<span style='top:"+x+";left:"+(i*100+90)+" ;height:1;width:1;position:absolute;font-size:1px;background-color:blue'></span>";
rs[rs.length] = "<span style='top:"+y+";left:"+(i*100+90)+" ;height:1;width:1;position:absolute;font-size:1px;background-color:blue'></span>";
}
return rs.join("");
}
//-->
</SCRIPT>
</body>
</html>

zxhong 2003-03-24
  • 打赏
  • 举报
回复
up and study
llrock 2003-03-24
  • 打赏
  • 举报
回复
function getLayerH( ID ){
if (bw.ns6) return(parseInt(document.getElementById(ID).style.height));
else if (bw.ns) return(document.layers[ID].document.height);
else return(document.all[ID].offsetHeight);
}


function X19c797( ID ) {
return (getLayerSW( ID ) + getLayerX( ID ));
}


function X5671f1( ID ) {
return (getLayerSH( ID ) + getLayerY( ID ));
}


function getVisibility( ID ) {
if (bw.ns6) return(document.getElementById(ID).style.visibility!="hidden");
else if (bw.ns) return(document.layers[ID].visibility!="hide");
else return(document.all[ID].style.visibility!="hidden"&&document.all[ID].style.visibility!="HIDDEN");
}

function getZIndex( ID ) {
if (bw.ns6) return(document.getElementById(ID).style.zIndex);
else if (bw.ns) return(document.layers[ID].zIndex);
else return(document.all[ID].style.zIndex);
}

function changeZIndex( ID, z ) {
if (bw.ns6) document.getElementById(ID).style.zIndex = z;
else if (bw.ns) document.layers[ID].zIndex = z;
else document.all[ID].style.zIndex = z;
}

function showLayer( ID ) {
if (bw.ns6) {
document.getElementById(ID).style.visibility = "visible";
document.getElementById(ID).style.pixelHeight = getLayerSH(ID);
}else if (bw.ns) {
document.layers[ID].visibility = "show";
document.layers[ID].clip.height = getLayerSH(ID);
}else {
document.all[ID].style.visibility = "visible";
document.all[ID].style.pixelHeight = getLayerSH(ID);
}
}


function hideLayer( ID ) {
if (bw.ns6) {
document.getElementById(ID).style.visibility = "hidden";
document.getElementById(ID).style.pixelHeight = 0;
}else if (bw.ns) {
document.layers[ID].visibility = "hide";
document.layers[ID].clip.height = 0;
}else {
document.all[ID].style.visibility = "hidden";
document.all[ID].style.pixelHeight =0;
}
}

function X3324ad( ID, x, y) {
var Xc3efd = false;
if ((x>=getLayerX(ID)) && (x<=(getLayerX(ID)+getLayerSW(ID))));
if ((y>=getLayerY(ID)) && (y<=(getLayerY(ID)+getLayerSH(ID)))) Xc3efd = true;
return (Xc3efd);
}

function X409330() {
document.orPageWidth = innerWidth;
document.orPageHeight = innerHeight;
onresize = X5d893b;
}

function X5d893b() {
if (innerWidth != document.orPageWidth || innerHeight != document.orPageHeight) location.reload();
}

function loadImg() {
if (document.images) {
var imgStr = loadImg.arguments;
if (!document.preloadArray) document.preloadArray = new Array();
var n = document.preloadArray.length;
for (var i=0; i<loadImg.arguments.length; i++) {
document.preloadArray[n] = new Image;
document.preloadArray[n].src = imgStr[i];n++;
}
}
}

function makeImgSrc(imgSRC,imgID) {
if (bw.ns4 && makeImgSrc.arguments.length > 2) {
var thisDocument = '';
for (var i=(makeImgSrc.arguments.length-1) ; i>=2 ; i--) {
thisDocument += 'document.layers["'+makeImgSrc.arguments[i]+'"].';
}
thisDocument += 'document.images["'+imgID+'"].src="'+imgSRC+'"';
eval(thisDocument);
}else document.images[imgID].src = imgSRC;
}

function changeContent( ID, str) {
if (bw.ns4) {
document.layers[ID].document.open();
document.layers[ID].document.write(str);
document.layers[ID].document.close();
}else if(bw.ns6) {
if(bw.mac) str += "<br>";document.getElementById(ID).innerHTML = str;
}else if(bw.ie) {
if(bw.mac) str += "<br>";document.all[ID].innerHTML = str;
}
}


function clipTo( ID, x, y, w, h) {
if (bw.ns4) {
document.layers[ID].clip.left = x;
document.layers[ID].clip.top = y;
document.layers[ID].clip.width = w;
document.layers[ID].clip.height = h;
}else{
if(bw.ns6) the_elt = document.getElementById(ID);
else if(bw.ie) the_elt = document.all[ID];
var the_clip = "rect("+y+"px "+w+"px "+h+"px "+x+"px)";
the_elt.style.clip = the_clip;the_elt.style.overflow = "hidden";
}
}


function setBgColor( ID, C ) {
if (bw.ns4) {
document.layers[ID].bgColor = C;
}else if(bw.ns6) {
document.getElementById(ID).style.backgroundColor = C;
}else if(bw.ie) {
document.all[ID].style.backgroundColor = C;
}
}
llrock 2003-03-24
  • 打赏
  • 举报
回复
学习学习。
不过我觉得,只要抓住ie和其他浏览器的关键结构就可以做到兼容,下面是一些老外使用的方法。
function lib_bwcheck(){
this.ver=navigator.appVersion;
this.agent=navigator.userAgent
this.dom=document.getElementById?1:0
this.win = (navigator.appVersion.indexOf("Win")>0);
this.xwin = (navigator.appVersion.indexOf("X11")>0);
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ie=this.ie4||this.ie5||this.ie6
this.mac=this.agent.indexOf("Mac")>-1
this.opera5=this.agent.indexOf("Opera 5")>-1
this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.dom||false);
this.width = null;
this.height = null;
return this
}

var bw = new lib_bwcheck();

function makeLayer( idStr ) {
this.idStr = idStr;
if(bw.ns4)this.idPtr=document.layers[idStr];
else if (bw.ns6) this.idPtr = document.getElementById(idStr);
else this.idPtr = eval('document.all.'+idStr);
this.makeAnimate = makeAnimate;
//this.makeLoadable = X69fe74;
//this.makeDragable = dragWin;
//this.makePanel = lab_makePanel;
//this.startAni=startAni;
this.moveTo=lib_moveTo;
this.moveBy=lib_moveBy;
this.clipTo=lib_clipTo;
this.show=lib_showIt;
this.hide=lib_hideIt;
this.zoomTo=lib_zoomTo;
this.x = getLayerX(this.idStr);
this.y = getLayerY(this.idStr);
this.z = getZIndex(this.idStr);
this.sh = getLayerSH(this.idStr);
this.sw = getLayerSW(this.idStr);

if (bw.ns6) this.css=this.idPtr.style;
else if (bw.ns) this.css=this.idPtr;
else this.css=this.idPtr.style;

return (this);
}

//得到逻辑对象的名字
function getNameByIdstr(idstr){
var beginnum=idstr.indexOf("_")+1;//异常处理!!!!!
var name=idstr.slice(beginnum);
return name;
}
/***************************************************************************************************
常用函数
***************************************************************************************************/
function lib_clipTo(t,r,b,l,setwidth){
if(t<0)t=0;
if(r<0)r=0;
if(b<0)b=0;
if(l<0)l=0;
this.ct=t;
this.cr=r;
this.cb=b;
this.cl=l
if(bw.ns4){
this.css.clip.top=t;
this.css.clip.right=r;
this.css.clip.bottom=b;
this.css.clip.left=l;
}else if(bw.opera5){
this.css.pixelWidth=r;
this.css.pixelHeight=b;
this.w=r;
this.h=b
}else{
this.css.clip="rect("+t+","+r+","+b+","+l+")";
if(setwidth){
this.css.width=r;
this.css.height=b;
this.w=r;
this.h=b
}
}
}
function lib_moveTo(x,y){
this.x=x!=''?x:this.x;
this.y=y!=''?y:this.y;
this.css.left=this.x;
this.css.top=this.y
}

function lib_moveBy(x,y){
this.moveTo(this.x+x,this.y+y)
}

function lib_showIt(){
this.css.visibility="visible";
this.visible=true;
}

function lib_hideIt(){
this.css.visibility="hidden";
this.visible=false;
}
function getBwSize() {
if (bw.compatible) {
if (bw.ie) {
bw.width = document.body.clientWidth;
bw.height = document.body.clientHeight;
}else if (bw.ns4) {
bw.width = window.innerWidth;
bw.height = window.innerHeight;
document.all = document;
X409330();
}else if (bw.ns6) {
bw.width = window.innerWidth;
bw.height = window.innerHeight;
}else if(bw.opera) {
bw.width = window.innerWidth;
bw.height = window.innerHeight;
}

return (true);
}else {
alert('非常不幸的是你的浏览器或操作系统不支持我们目前的站点,你将被重定向到我的个人网站www.llrock.com');
location.href='http://www.llrock.com';
}

}

function lib_zoomTo(scale){
this.scale=scale;
this.css.zoom=scale;
}
function moveByIt( ID, x, y) {
if (bw.ns6) {
var thisID = document.getElementById(ID);
thisID.style.left = parseInt(thisID.style.left)+x;
thisID.style.top = parseInt(thisID.style.top)+y;
}else if (bw.ns) {
document.layers[ID].moveBy(x, y);
}else {
var thisID = document.all[ID];
thisID.style.pixelLeft = parseInt(thisID.style.pixelLeft)+x;
thisID.style.pixelTop = parseInt(thisID.style.pixelTop)+y;
}
}


function moveToIt( ID, x, y) {
if (bw.ns6) {
var thisID = document.getElementById(ID);
thisID.style.left = x;thisID.style.top = y;
}else if (bw.ns) {
document.layers[ID].moveTo(x, y);
}else {
var thisID = document.all[ID];
thisID.style.pixelLeft = x;
thisID.style.pixelTop = y;
}
}



function resizeByIt( ID, w, h) {
if (bw.ns6) {
var thisID = document.getElementById(ID);
thisID.style.width = (parseInt(thisID.style.offsetWidth)+w+"px");
thisID.style.height = (parseInt(thisID.style.offsetHeight)+h+"px");
}else if (bw.ns) {
document.layers[ID].resizeBy(w,h);
}else {
var thisID = document.all[ID];
thisID.style.pixelWidth = thisID.offsetWidth+w;
thisID.style.pixelHeight = thisID.offsetHeight+h;
}
}



function resizeToIt( ID, w, h) {
if (bw.ns6) {
var thisID = document.getElementById(ID);
thisID.style.width = w+"px";thisID.style.height = h+"px";
}else if (bw.ns) {
document.layers[ID].resizeTo(w,h);
document.layers[ID].document.width = w;
document.layers[ID].document.height = h;
}else {
var thisID = document.all[ID];
thisID.style.pixelWidth = w;
thisID.style.pixelHeight = h;
}
}



function getObjectById( ID ) {
if (bw.ns6) return document.getElementById(ID);
else if (bw.ns) return document.layers[ID];
else return document.all[ID];
}


function getLayerX( ID ) {
if (bw.ns6) return(parseInt(document.getElementById(ID).style.left));
else if (bw.ns) return(document.layers[ID].left);
else return(document.all[ID].offsetLeft);
}


function getLayerY( ID ) {
if (bw.ns6) return(parseInt(document.getElementById(ID).style.top));
else if (bw.ns) return(document.layers[ID].top);
else return(document.all[ID].offsetTop);
}


function getLayerSW( ID ) {
if (bw.ns6) {
if(isNaN(parseInt(document.getElementById(ID).style.width))) return(parseInt(document.defaultView.getComputedStyle(document.getElementById(ID),null).getPropertyValue('width')));
else if(parseInt(document.getElementById(ID).style.width)==0) return(parseInt(document.defaultView.getComputedStyle(document.getElementById(ID),null).getPropertyValue('width')));
else return(parseInt(document.getElementById(ID).style.width));
}else if (bw.ns) return(document.layers[ID].document.width);
else return(document.all[ID].scrollWidth);
}


function getLayerSH( ID ){
if (bw.ns6) {
if(isNaN(parseInt(document.getElementById(ID).style.height))) return(parseInt(document.defaultView.getComputedStyle(document.getElementById(ID),null).getPropertyValue('height')));
else if(parseInt(document.getElementById(ID).style.height)==0) return(parseInt(document.defaultView.getComputedStyle(document.getElementById(ID),null).getPropertyValue('height')));
else return(parseInt(document.getElementById(ID).style.height));
}else if (bw.ns) return(document.layers[ID].document.height);
else return(document.all[ID].scrollHeight);
}


function getLayerW( ID ) {
if (bw.ns6) return(parseInt(document.getElementById(ID).style.width));
else if (bw.ns) return(document.layers[ID].document.width);
else return(document.all[ID].offsetWidth);
}
emu 2003-03-07
  • 打赏
  • 举报
回复
客户说要,你知道,他们总是对的。
blues-star 2003-03-06
  • 打赏
  • 举报
回复
就为了IE 和 NG不一样,就要编两套?

还要学两套?

学完了NG上还不晓得有几个人会用,太失败了。
加载更多回复(41)

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧