Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[JavaScript] Select-Box dynamisch erweitern aus anderem Fenster

Empfohlene Antworten

Veröffentlicht

Hi,

Ich habe hier ein kleines Problem:

Ich habe in einem Window eine Select-Box, die Options enthält, die ich aus eine Datenbank hole.

Über einen Button kann man ein zweites Fenster aufmachen.

In dem zweiten Fenster kann man dann einen Text eingeben. Wird die Form abgeschickt, wird der Text in die Datenbank geschrieben.

Wurde der Text erfolgreich in die DB geschrieben, soll der Text auch als Auswahl in die Select-Box des ersten Windows aufgenommen werden.

Ich habe bereits die Möglichkeit versucht

opener.document.form.feld.options[opener.document.form.feld.options.length] = new Option('blabla', 'blabla');

Allerdings hab ich nach ewigem rumprobieren rausgefunden, dass genau diese Lösung nicht funktioniert, wenn man es von einem anderen Window aus machen will.

Hat jemand ne Idee, wie man das lösen könnte?

Die einfachste wäre natürlich, die Seite im ersten Window einfach neu zu Laden, nur da diese einige Select-Boxen und Eingabefelder enthält, würden sämtliche gefüllten Felder verloren gehen.

das liegt daran, dass du in anderen Frames mit Javascript nur leserechte hast....

bei Netscape gibts dafür die Funktion document.importNode


if(!document.importNode){

    document._importNode = function(oNode, bImportChildren){

        var oNew;

        if(oNode.disabled)

            oNode.disabled = false;

        if(oNode.nodeType == 1){

            oNew = document.createElement(oNode.nodeName);

            for(var i = 0; i < oNode.attributes.length; i++){

                if(oNode.attributes[i].value != null && oNode.attributes[i].value != '')

                {

                    alert(oNode.nodeName + '.' + oNode.attributes[i].name + " -> " + oNode.attributes[i].value);

                    oNew.setAttribute(oNode.attributes[i].name, oNode.attributes[i].value);

                }

            }

            oNew.style.cssText = oNode.style.cssText;

        } else if(oNode.nodeType == 3){

            oNew = document.createTextNode(oNode.nodeValue);

        }


        if(bImportChildren && oNode.hasChildNodes()){

            for(var oChild = oNode.firstChild; oChild; oChild = oChild.nextSibling){

                oNew.appendChild(document._importNode(oChild, true));

            }

        }


        return oNew;

    }

}

quelle: http://tek-tips.com/viewthread.cfm?qid=906034

Die einfachste wäre natürlich, die Seite im ersten Window einfach neu zu Laden, nur da diese einige Select-Boxen und Eingabefelder enthält, würden sämtliche gefüllten Felder verloren gehen.

Du must ja nicht gleich refreshen. Es reicht, doch wenn du das Formular abschickst. Dann kannst du die Werte auch wieder setzen.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.