...

View Full Version : return values from windows.onload



soniyakapoor03
01-30-2006, 07:48 AM
hi,
i am finding value for a table height in window.onload=function(){

boxheight=document.getElementById('tableid').offsetHeight;
}
i want to assign box height to an outside variable boxheight.

my javscript is given below


<script language="javascript">

//ENTER CONTENT TO SCROLL BELOW.
var content='how are you';

var boxheight="assign values from windows.onload"; // BACKGROUND BOX HEIGHT IN PIXELS.
var boxwidth=160; // BACKGROUND BOX WIDTH IN PIXELS.
var boxcolor="#FFFFFF"; // BACKGROUND BOX COLOR.
var speed=100; // SPEED OF SCROLL IN MILLISECONDS (1 SECOND=1000 MILLISECONDS)..
var pixelstep=2; // PIXELS "STEPS" PER REPITITION.
var godown=false; // TOP TO BOTTOM=TRUE , BOTTOM TO TOP=FALSE

// DO NOT EDIT BEYOND THIS POINT

var outer,inner,elementheight,ref,refX,refY;
var w3c=(document.getElementById)?true:false;
var ns4=(document.layers)?true:false;
var ie4=(document.all && !w3c)?true:false;
var ie5=(document.all && w3c)?true:false;
var ns6=(w3c && navigator.appName.indexOf("Netscape")>=0)?true:false;
var txt='';
if(ns4){
txt+='<table cellpadding=0 cellspacing=0 border=0 height='+boxheight+' width='+boxwidth+'><tr><td>';
txt+='<ilayer name="ref" bgcolor="'+boxcolor+'" width='+boxwidth+' height='+boxheight+'></ilayer>';
txt+='</td></tr></table>'
txt+='<layer name="outer" bgcolor="'+boxcolor+'" visibility="hidden" width='+boxwidth+' height='+boxheight+'>';
txt+='<layer name="inner" width='+(boxwidth-4)+' height='+(boxheight-4)+' visibility="hidden" left="2" top="2" >'+content+'</layer>';
txt+='</layer>';
}else{
txt+='<div id="ref" style="position:relative; width:'+boxwidth+'; height:'+boxheight+'; background-color:'+boxcolor+';" ></div>';
txt+='<div id="outer" style="position:absolute; width:'+boxwidth+'; height:'+boxheight+'; visibility:hidden; background-color:'+boxcolor+'; overflow:hidden" >';
txt+='<div id="inner" style="position:absolute; visibility:visible; left:2px; top:2px; width:'+(boxwidth-4)+'; overflow:hidden; cursor:default;">'+content+'</div>';
txt+='</div>';
}
document.write(txt);

function getElHeight(el){
if(ns4)return (el.document.height)? el.document.height : el.clip.bottom-el.clip.top;
else if(ie4||ie5)return (el.style.height)? el.style.height : el.clientHeight;
else return (el.style.height)? parseInt(el.style.height)arseInt(el.offsetHeight);
}

function getPageLeft(el){
var x;
if(ns4)return el.pageX;
if(ie4||w3c){
x = 0;
while(el.offsetParent!=null){
x+=el.offsetLeft;
el=el.offsetParent;
}
x+=el.offsetLeft;
return x;
}}

function getPageTop(el){
var y;
if(ns4)return el.pageY;
if(ie4||w3c){
y=0;
while(el.offsetParent!=null){
y+=el.offsetTop;
el=el.offsetParent;
}
y+=el.offsetTop;
return y;
}}

function scrollbox(){
if(ns4){
inner.top+=(godown)? pixelstep: -pixelstep;
if(godown){
if(inner.top>boxheight)inner.top=-elementheight;
}else{
if(inner.top<2-elementheight)inner.top=boxheight+2;
}}else{
inner.style.top=parseInt(inner.style.top)+((godown)? pixelstep: -pixelstep)+'px';
if(godown){
if(parseInt(inner.style.top)>boxheight)inner.style.top=-elementheight+'px';
}else{
if(parseInt(inner.style.top)<2-elementheight)inner.style.top=boxheight+2+'px';
}}}

window.onresize=function(){
if(ns4)setTimeout('history.go(0)', 400);
else{
outer.style.left=getPageLeft(ref)+'px';
outer.style.top=getPageTop(ref)+'px';
}}

window.onload=function(){

boxheight=document.getElementById('fred').offsetHeight;
outer=(ns4)?document.layers['outer']ie4)?document.all['outer']:document.getElementById('outer');
inner=(ns4)?outer.document.layers['inner']ie4)?document.all['inner']:document.getElementById('inner');
ref=(ns4)?document.layers['ref']ie4)?document.all['ref']:document.getElementById('ref');
elementheight=getElHeight(inner);
if(ns4){
outer.moveTo(getPageLeft(ref),getPageTop(ref));
outer.clip.width=boxwidth;
outer.clip.height=boxheight;
inner.top=(godown)? -elementheight : boxheight-2;
inner.clip.width=boxwidth-4;
inner.clip.height=elementheight;
outer.visibility="show";
inner.visibility="show";
}else{
outer.style.left=getPageLeft(ref)+'px';
outer.style.top=getPageTop(ref)+'px';
inner.style.top=((godown)? -elementheight : boxheight)+'px';
inner.style.clip='rect(0px, '+(boxwidth-4)+'px, '+(elementheight)+'px, 0px)';
outer.style.visibility="visible";
}
setInterval('scrollbox()',speed);
}
</script>

Pyth007
01-30-2006, 07:26 PM
Not sure what you are trying to ask (or what your problem is)... If you declare a variable outside of a function, the function will be inside the variable's scope. Thus you can set it inside the function... See my example:

<html>
<head>
<title>Test Test</title>
<script type="text/javascript">
var boxheight; // Declared outside any functions
window.onload=function()
{
boxheight=document.getElementById("myDiv").offsetHeight;
}
function alertHeight() { alert(boxheight); }
</script>
</head>
<body bgcolor="#003366" style="color:#FFFFFF">
<h1>Click on the div to see div offsetHeight</h1>
<div id="myDiv" onclick="alertHeight();" style="width:300; height:100; border:1px #ffffff solid;">
This is the Div that gets it's offsetHeight taken from...
</div>
</body>
</html>
Here the variable boxheight is declared outside of any functions, thus allowing both the anonymous onload function as well as alertHeight() to use this variable. I have made the <div> to be 100px high; thus the offsetHeight should be 100px(height of <div>) + 1px(thickness of top border) + 1px(thickness of bottom border)=102px. Clicking on the <div> reveals that this is exactly what gets calculated.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum