[JS] Anfängerfrage zu Funktionsparamtern

MarcDK

Banned
Registriert
Mai 2001
Beiträge
3.559
Guckt euch mal bitte folgendes Script an. Das habe ich von hier: http://www.jjam.de/JavaScript/Dialogbox/Alert.html

Ich möchte der Fkt. showAlert() einen Parameter mitgeben, der den Text der angezeigt werden soll, anzeigt. Wo oder wie mache ich das in JS? Kann es sein, dass das NULL mit Java zu tun hat?! IOch wäre euch echt sehr dankbar!

Code:
<!-- www.jjam.de - Alertbox mit JavaScript - Version 20.12.2002 -->
<html>

    <head>
        <title>Alertbox</title>
        <meta name="robots" content="noindex, nofollow">
        <style type="text/css">p{font-family:verdana,arial;font-size:80%}</style>
        <script language="JavaScript">
            alertWidth=300;
            alertHeight=200;
            xAlertStart=300;
            yAlertStart=100;
            alertTitle="<p align='center'><b>JavaScript Alert !!!</b></p>";
            alertText="<p align='center'>Hallo, ich bin eine Dialogbox !<br><br>Im Internet Explorer 5+ lasse ich mich sogar verschieben.</p>";
            function okAlert() {
                document.getElementById("alert").style.visibility="hidden";
            }
            function alertAlternative() {
                alert("Hallo, ich bin auch eine Dialogbox !\n\nAber leider nicht so hübsch wie im IE 5+ oder NN 6+.");
            }
        </script>
        <script language="JavaScript" src="Alert.js"></script>
    </head>

    <body scroll="auto">
        <p><br><a href="javascript:showAlert()" onfocus="if(this.blur)this.blur()">HIER</a></p>
    </body>
<html>
 
Hallo,

[...] Kann es sein, dass das NULL mit Java zu tun hat?! [...]
Ja, Java und JavaScript sind zwei grundlegend andere Sprachen, viele Gemeinsamkeiten gibt es zwischen diesen nicht.

Zu deinem Problem:

Du kannst du Funktion showAlert() und alertAlternativ() zum Beispiel so abändern:
Code:
function alertAlternative(text) {
  alert(text);
  //ggf. weitere Anweisungen
}

//Alertbox anzeigen
function showAlert(text) {
  moveStatus=0;
  xAlert=xAlertStart, yAlert=yAlertStart;
  if(ie5) {
    document.getElementById("alerttext").innerHTML=text;
    document.getElementById("alert").style.left=xAlert+document.body.scrollLeft;
    document.getElementById("alert").style.top=yAlert+document.body.scrollTop;
    document.getElementById("alert").style.visibility="visible";
  }
  else if(nn6||op5) {
    document.getElementById("alerttext").innerHTML=text;
    document.getElementById("alert").style.left=xAlert+window.pageXOffset;
    document.getElementById("alert").style.top=yAlert+window.pageYOffset;
    document.getElementById("alert").style.visibility="visible";
  }
  else alertAlternative(text);
}
wenn du nun noch:

Code:
alertText="<p align='center'>Hallo, ich bin eine Alertbox ! ...</p>";
gegen:

Code:
alertText="<p align='center' id='alerttext'>Hallo, ich bin eine Alertbox ! ...</p>";
ersetzt, kannst du das ganze zum Beispiel so aufrufen:

Code:
showAlert('Dies ist der Inhalt der Alert-Box!');
MfG mh1001
 
Kann man irgendwie dem Fenster sagen, dass es dort aufpopen soll, wo sich gerade der Mousecursor befindet?

Code:
xAlertStart=300;
yAlertStart=100;

Kann man diese Variablen irgendwie beim Click auf die MouseCursorpos. setzten?
 
Hallo,

auch wenn mir der auf der Seite gezeigte, unschöne Code alles andere als gefällt kannst du dies ganz einfach realisieren:
Rufe einfach am Anfang der Funktion "showAlert()" die Funktion "getxyRelativ()" auf und setze anschließend ebenfalls innerhalb "showAlert()" die Position des Containers mittels des Funktionsaufrufes von "moveAlert()".

MfG mh1001
 
Ich lerne gerne von dir wenn Du es besser kannst und es kommentierst...ich weiß nicht wie viel Arbeit das für dich ist. =)
 
Bezüglich der Positionierung war dies folgendermaßen gemeint:
Füge folgende beiden Zeilen

Code:
getxyRelativ();
moveAlert();
noch hinter
Code:
function showAlert() {
  moveStatus=0;
  xAlert=xAlertStart, yAlert=yAlertStart;
ein.

Die erste Funktion ermittelt die relative Mausposition und die zweite weist abhänging von der Position dann dem Container die entsprechenden Positionierungs-Angaben zu.

Wenn du möchtest, kann ich dir aber gerne einmal eine "saubere" und browserübergreifend funktionsfähige Variante von diesem JavaScript-Codeschnippsel schreiben. Vor der nächsten Woche werde ich dazu aber wohl nicht kommen.

MfG mh1001
 
Zuletzt bearbeitet:
Zurück
Oben