Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Kleines Problem mit Übergabe von Variablen

Mitglied: kami-kaTze

kami-kaTze (Level 1) - Jetzt verbinden

18.02.2010, aktualisiert 10:29 Uhr, 5437 Aufrufe, 7 Kommentare

Hallo,
ich habe mir ein kleines Script gebaut mit welchem ich Web2.0 like Inhalte in DIVs laden kann. Leider habe ich an einer Stelle ein Problem und bin mir unsicher warum dieses auftritt. Aber seht selbst:

Funktionierende Version meines Scripts:

Aufruf durch:
01.
onclick="getcontent('content_offen.php');">
Code:
01.
function getHTTPObject()
02.
                {
03.
                var xmlhttp;
04.
                if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
05.
                               {
06.
                               try
07.
                                               {
08.
                                               xmlhttp = new XMLHttpRequest();
09.
                                               }
10.
                               catch (e)
11.
                                               {
12.
                                               xmlhttp = false;
13.
                                               }
14.
                               }
15.
                return xmlhttp;
16.
                }
17.
                var http = getHTTPObject(); // We create the HTTP Object
18.
function getcontent(url)
19.
                {
20.
                http.open("GET", url, true);
21.
                http.onreadystatechange = handleHttpResponse;
22.
                http.send(null);
23.
                }
24.
function handleHttpResponse()
25.
                {
26.
                var target = 'content';
27.
                if (http.readyState == 4)
28.
                               {
29.
                               if (http.responseText == undefined)
30.
                                               {
31.
                                               document.getElementById(target).innerHTML = '';
32.
                                               }
33.
                               else
34.
                                               {
35.
                                               document.getElementById(target).innerHTML = http.responseText;
36.
                                               }
37.
                               }
38.
                }
Nun möchte ich aber auch die ID des zu füllenden DIVs gleich im Aufruf mitgeben:

Also Aufruf durch:
01.
onclick="getcontent('content_offen.php'##red|,'content'##);">
Code:
01.
function getHTTPObject()
02.
                {
03.
                var xmlhttp;
04.
                if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
05.
                               {
06.
                               try
07.
                                               {
08.
                                               xmlhttp = new XMLHttpRequest();
09.
                                               }
10.
                               catch (e)
11.
                                               {
12.
                                               xmlhttp = false;
13.
                                               }
14.
                               }
15.
                return xmlhttp;
16.
                }
17.
                var http = getHTTPObject(); // We create the HTTP Object
18.
function getcontent(url,target)
19.
                {
20.
                http.open("GET", url, true);
21.
                http.onreadystatechange = handleHttpResponse(target);
22.
                http.send(null);
23.
                }
24.
function handleHttpResponse(target)
25.
                {
26.
                if (http.readyState == 4)
27.
                               {
28.
                               if (http.responseText == undefined)
29.
                                               {
30.
                                               document.getElementById(target).innerHTML = '';
31.
                                               }
32.
                               else
33.
                                               {
34.
                                               document.getElementById(target).innerHTML = http.responseText;
35.
                                               }
36.
                               }
37.
                }
Das Problem liegt in Zeile 21. Hier ist es scheinbar nicht möglich meiner Funktion "handleHttpResponse" eine Variabele mitzugeben.
Ich hoffe ihr könnt mir helfen.

Grüße aus Hannover
kami
Mitglied: Snowman25
18.02.2010 um 09:55 Uhr
Bei der Formatierung weigere ich mich, den Text auch nur durchzulesen...
Ausserdem: ist onreadystatechange nicht ein event?
Events kannst du doch keinen Rückgabewert aus einem Funktionsaufruf zuweisen.

€dit:
Ausserdem kannst du mal hier schauen.
Bitte warten ..
Mitglied: nxclass
18.02.2010 um 10:09 Uhr
... dann lass Dir mal target in der Funktion handleHttpResponse mit alert() ausgeben.
Allgemein glaube ich das Du mal paar Ausgaben einbauen solltest (oder anderweitig dein Code debugst ( https://addons.mozilla.org/de/firefox/addon/1843 )

btw. Bitte auf die Darstellung achten bevor Du deinen Code abschickst.

Events kannst du doch keinen Rückgabewert aus einem Funktionsaufruf zuweisen
... ist schon OK so - wenn das Event auftritt wird die zugewiesene Funktion aufgerufen.
Bitte warten ..
Mitglied: kami-kaTze
18.02.2010 um 10:23 Uhr
Habe die Darstellung gefixt ^.^

Ausserdem habe ich mitlerweile einen Weg gefunden das Problem zu lösen:
Und zwar sieht die problematische Zeile nun wie folgt aus:

01.
http.onreadystatechange = new Function('target','handleHttpResponse("'+target+'")');
Vieleicht kann mir jemand erklären wofür in diesem Teil des Codes die erste variabele (target) gut ist.

Edit: Alles in allem ein wenig seltsam das dies Funktioniert da ich ja quasi die Funktion ein weiteres mal anlege oder nicht?
Edit2: Ich hatte mir schon alerts eingebaut. Allerdings hat mir das target von handleHttpResponse (undifined) zurückgegeben. Wenn ich allerdings direkt über Zeile 21 einen altert von target mache bekam ich den korrekten Wert.

Grüße
Bitte warten ..
Mitglied: nxclass
18.02.2010 um 10:33 Uhr
schau mal da: http://de.selfhtml.org/javascript/objekte/function.htm

01.
http.onreadystatechange = function(target)
02.
{
03.
  if (http.readyState == 4) {
04.
    if (http.responseText == undefined) {
05.
      document.getElementById(target).innerHTML = '';
06.
    } else {
07.
      document.getElementById(target).innerHTML = http.responseText;
08.
    }
09.
  }
10.
}
Bitte warten ..
Mitglied: kami-kaTze
18.02.2010 um 10:37 Uhr
Habe ich schon,
ich verstehe allerdings nicht warum das funktioniert. Da ich in meinem Workaround ja zwei mal die Funktion handleHttpResponse erstelle..

Grüße
Bitte warten ..
Mitglied: nxclass
18.02.2010 um 10:43 Uhr
s. mein letzter Beitrag.
Dazu fehlen Dir wohl noch etwas Kenntnisse zur Objekt Orientierten Programmierung in Javascript.

Du hattest die Funktion aufgerufen ... so wird die Funktion zugewiesen.
Bitte warten ..
Ähnliche Inhalte
Festplatten, SSD, Raid
Windows Server Systemfestplatte zu klein
gelöst Frage von manuelwFestplatten, SSD, Raid22 Kommentare

Hallo, wir haben einen Windows Small Business Server 2008. Leider haben wir jetzt das Problem, dass unsere Systemfestplatte zu ...

Virtualisierung
Spiel in der VM ist sehr klein
Frage von KMP1988Virtualisierung13 Kommentare

Servus, ich will ein älteres Spiel in einer XP-VM zum laufen bringen (habs mit VMware und mit VirtualBox probiert). ...

HTML
Iframe wird zu klein in div angezeigt
gelöst Frage von Thomas91HTML7 Kommentare

Hey Community, ich habe ein Problem mit einem <iframe> in einem <div>. Das iFrame wird nicht ganz angezeigt da ...

Viren und Trojaner

Firmenbilder auf dem Fileserver auf einmal alle sehr klein

Frage von kooninViren und Trojaner8 Kommentare

Hallo zusammen, ganz merkwürdig. Wir haben von ca. 15 Jahren unsere Firmenbilder auf dem Server gespeichert. Grundsätzlich liegt uns ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 4 TagenWindows 72 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 6 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 7 TagenMicrosoft Office9 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 9 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Notebooks in Firmenwlan authentifizieren
gelöst Frage von EarthShakerLAN, WAN, Wireless17 Kommentare

Guten Tag, unsere Firma möchte gerne flächendeckend WLAN einführen und hat zu diesem Zweck einen Dienstleister beauftragt. Wir benötigen ...

Peripheriegeräte
PS2 Y-Kabel für Maus+Tastatur an PS2 Combo-Anschluss ASUS Prime X370-A
gelöst Frage von Windows10GegnerPeripheriegeräte13 Kommentare

Hallo, ich bin am Überlegen das o.g. Motherboard anzuschaffen. Da ich aber noch PS/2 für Maus+Tastatur benötige (bei optischen ...

Windows 10
Netzlaufwerk verschwindet (aber nur bestimmter Laufwerksbuchstabe)
gelöst Frage von survial555Windows 1010 Kommentare

Hallo, ich habe ein ganz seltsames Problem. Systemumgebung: Server 2012 R2 als DC und Windows 10 Pro als Clients ...

Netzwerkmanagement
Netzwerk vorübergehend weg
Frage von ahstaxNetzwerkmanagement10 Kommentare

Hallo, folgendes Szenario stellt sich dar: Im Netzwerk mit Win7-PCs wurden Switche ausgetauscht. Grundsätzlich funktioniert alles mindestens so gut ...