void: absolute Elementposition im IE (7.0) auslesen?

Beitrag lesen

ich habe jetzt auch eine "testseite" geschrieben, das grundgerüst funktioniert (ob jetzt korrekt implementiert, oder nicht)...

aufgrund von zugriffsrechten kann man natürlich nur seiten der selben domain verwenden. speichert man aber jetzt verscheidene seiten z.b. lokal ab und lädt diese in meinem frameset, funktioniert es sehr gut, soll heißen etwa 90% der links werden korrekt umrandet, der rest leider nicht -> seltsam!?!?

frameset-datei:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"  
   "http://www.w3.org/TR/html4/frameset.dtd">  
<html>  
<head>  
<title>test</title>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
</head>  
<frameset rows="100,*">  
  <frame src="javascript.html">  
  <frame src="about:blank" name="browserwindow">  
</frameset>  
</html>  

und frame-datei (javascript.html):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
       "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<title>test</title>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<script type="text/javascript">
~~~~~~javascript
  
function browseto()  
{  
 parent.browserwindow.location=document.all.url.value;  
}  
  
function mark_links()  
{  
 var anz;  
 anz=parent.browserwindow.document.links.length  
  
 for(var i=0;i<anz;++i)  
 {  
  var pos;  
  pos=getPos(parent.browserwindow.document.links[i]);  
  parent.browserwindow.document.body.insertAdjacentHTML("AfterBegin", '<span id="marker' + i + '" style="position:absolute;border:1px solid red" />');  
  parent.browserwindow.document.getElementById('marker' + i).style.left=pos.left  
  parent.browserwindow.document.getElementById('marker' + i).style.top=pos.top  
  parent.browserwindow.document.getElementById('marker' + i).style.width=parent.browserwindow.document.links[i].offsetWidth  
  parent.browserwindow.document.getElementById('marker' + i).style.height=parent.browserwindow.document.links[i].offsetHeight  
 }  
}  
  
function getPos (o)  
{  
 var r = { top:0, left:0 };  
 if(!o) return r;  
 else if(typeof o == 'string' ) o = document.getElementById(o);  
 if( typeof o != 'object' ) return r;  
 if(typeof o.offsetTop != 'undefined')  
 {  
  r.left = r.top = 0;  
  while (o)  
  {  
   if(o.offsetParent)  
   {  
    if(o.offsetParent.currentStyle.position!='relative')  
    {  
     r.top  += parseInt( o.offsetTop );  
     r.left += parseInt( o.offsetLeft );  
    }  
   }  
   else  
   {  
    r.top  += parseInt( o.offsetTop );  
    r.left += parseInt( o.offsetLeft );  
   }  
  
   o = o.offsetParent;  
  }  
 }  
 return r;  
}
~~~~~~html
  
</script>  
</head>  
<body>  
 <div><form action=""><label for="url">URL:</label> <input id="url" size="100" /> <input type="button" value="Browse" onclick="browseto()" /></form></div>  
 <div><form action=""><input type="button" value="mark all links" onclick="mark_links()" /></form></div>  
</body>  
</html>