Axel Richter: onMouseover für gesamtes Fenster

Beitrag lesen

Hallo beisamen,

^wobei bitte?
Hallo,

ich möchte für eine Seite eine Popup-Hilfe realisieren. Wie dies aussehen sollte, hab ich mir so gedacht:
function help(obj)

...

<div helpid="1">...</div>

^ERROR. Das Element DIV hat kein Attribut "helpid".

<div></div>
wie man sieht, ist das besondere dabei, das die div-elemente keine onMouseover-Events besitzen, was auch so gewollt ist. Die funktion help() soll aber für alle divs im dokument ausgeführt werden und dann bei einer vorhanden helpid die funktion popup().
Doch wie wie realisiere ich das, dass quasi universal für alle elemente im dokument ein onMouseover-Befehl (help()) ausgeführt wird?

Du meinst aber, es soll help(this) ausgeführt werden. Eine parameterlose Funktion wäre nämlich einfach.

Durchlaufe bei BODY.onload einfach alle DIV-Elemente des Dokuments und weise ihnen die Funktion help(this) zu. Dabei ist allerdings zu beachten, dass nicht alle Browser die Zuweisung des Stings "help(this)" als Funktion interpretieren. Du solltest die Zuweisung deshalb nicht als String, sondern als Function-Objekt ausführen.

Bsp.:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Titel</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript">
<!--
function initHelp() {
 var allDIVs=document.getElementsByTagName("DIV");
 for (var i = 0; i < allDIVs.length; i++){
   allDIVs[i].onmouseover = function(){help(this);};
 }
}
function help(obj) {
 if (obj.id.match(/^help/)) {
   alert(obj.firstChild.nodeValue);
 }
}
//-->
</script>
</head>
<body onload="initHelp();">
<div id="help1">Hilfe 1</div>
<div>Keine Hilfe</div>
<div id="help2">Hilfe 2</div>
<div id="help3">Hilfe 3</div>
<div>Keine Hilfe</div>
</body>
</html>

viele Grüße

Axel