Cruz: Was ist falsch mit dieser open function?

Hallo Jungs!

Ich bin ein offensichtlicher JavaScript Anfänger...und nach einiger Stunden selfhtml stöbern und ungefähr 214425 errors frage ich nun euch....was ist denn das Geheimnis des open() functions?

ich hab

open() {
open('','sandroik','height=200,width=300');
}

was ich mit <a href="javascript:open('sandroik.html')"> aufrufe.

es öffnet sich auch ein neues fenster, nur schert sie sich ein dreck um die width und die height.
außerdem steht dann im altem Fenster [object] (IE) oder [object Window] (NS). Wieso?

Und was bedeutet stack overflow? Das hatte ich nämlich auch ein paar mal, wo ich wagemutig auch ein paar locationbar=no 's und ähnliches versucht hab.

Hilfeeeee!!!

Danke
Cruz

  1. Hi,

    Ich bin ein offensichtlicher JavaScript Anfänger...und nach einiger Stunden selfhtml stöbern und ungefähr 214425 errors frage ich nun euch....was ist denn das Geheimnis des open() functions?

    ich hab

    open() {
    open('','sandroik','height=200,width=300');
    }

    was ich mit <a href="javascript:open('sandroik.html')"> aufrufe.

    es öffnet sich auch ein neues fenster, nur schert sie sich ein dreck um die width und die height.
    außerdem steht dann im altem Fenster [object] (IE) oder [object Window] (NS). Wieso?

    glaubst Du nicht, daß der Name open() etwas falsch gewählt wurde, wenn Du darin open() aufrufst? Hier wird offenbar automatisch (ohne Umweg) window.open() benutzt. Benenne die Funktion in oeffne(seite) um und benutze vor allem dann auch die Variable "seite" ;-)

    Und was bedeutet stack overflow? Das hatte ich nämlich auch ein paar mal, wo ich wagemutig auch ein paar locationbar=no 's und ähnliches versucht hab.

    Wahrscheinlich liegt das am rekursiven Aufruf, wenn open() open() startet. Zumindest wurde ein Stapelspeicher überfüllt und die Daten nicht wieder gelöscht. Wenn Du eindeutige Namen wählst, sollte das aber nicht vorkommen :-)

    Cheatah

  2. ich hab

    open() {
    open('','sandroik','height=200,width=300');
    }

    was ich mit <a href="javascript:open('sandroik.html')"> aufrufe.

    Damit programmierst du ne Endlos-Schleife da open sich
    immer wieder selbst aufruft ..
    Du musst deiner eigenen funktion nen anderen namen geben
    ausserdem musste in der function auch nen Parameter definieren wenn du einen übergeben willst.
    z.B.

    <script>
    function openwindow(name) {
    open(name,'sandroik','height=200,width=300');
    }
    </script>
    <body>
    <a href="javascript:openwindow('sandroik.html')"> test</a>

    gruss
    Jens

  3. worin die fehler leigen, aheb die anderenschon gesagt.
    grundsätzlich solltest du variablen und eigene funktionen nie nach dem bennen, was JS schon kennt - in keiner Programmiersprache.
    Wenn Du dir nicht sicher bist, dann schau in einer Referenz nach, was "reserviert" ist. Gibts u.a. bei http://developer.netscape.com und Co.

    Wenn dir etwas als Name für eine Funktion oder Variablen "zu naheliegend" vorkommt - wie z.B. open() dann geh davon aus, daß die Programmiere die Idee schon vorher gehabt haben und das auch schon genommen haben :-).

    Wenn du immer einen eigenen Prefix verwendest - z.B. myOpen, myObject, sText, iZahl, arListen() etc. dann läufst du weniger Gefahr, in die Fallen zu tappen, wie es bereits geschenen ist.

    Good Luck.

    CirTap