document.innerHTML auf Inhalt prüfen

LongDonJohn

Mitglied
Hallo,

ich habe folgendes Problem:

ich weise einem JavaScript Objekt den Inhalt eines PHP-Arrays zu:

PHP:
<?php
echo '<a href="#" onmouseup="document.all.resolution0.innerHTML=\''.$array[0].'\;'">	
?>

An späterer Stelle möchte ich prüfen, ob dieses JavaScript Object Inhalt enthält:

Code:
<script language="JavaScript">
<!--
if (document.all.resolution0.innerHTML!==""){
	document.write("Hallo")
}
//-->							
</script>

Leider funktioniert die Abfrage so nicht. Auch nicht mit <>"" oder =true.

Was mache ich also falsch?

Danke im Voraus für eure Hilfe!

Gruß
John
 
JavaScript, welches nicht in eine Funktion eingeschlossen ist, wird sofort nach dem Laden der Seite ausgeführt (ein Mal !).
Somit kann JavaScript auch nicht überprüfen, ob später durch Auslösung eines Events etwas passiert...
 
Der zweite Code-Schnipsel befindet sich ja auf der selben Seite nur ein bischen später im Quelltext. Wenn der Browser an die betreffende Stelle kommt, sollte das Objekt also schon einen Wert haben.

Mir geht es um die Abfrage und was da falsch ist. Falls man das so nicht machen kann: hat jemand eine andere Idee? Sitze nun seit zwei Tagen an dieser Abfrage und JS weigert sich strikt das zu machen, was ich von ihm will...
 
Hi.

Der Operator mit dem man auf Ungleichheit prüft ist in Javascript !=. Versuch's mal mit
Code:
if (document.all.resolution0.innerHTML != "")

Du könntest auch prüfen ob die length des Strings gleich 0 ist.

Gruß

PS: Übrigens funktioniert dein Code nur im IE.
 
Zuletzt bearbeitet:
zu deinem P.S.: wegen dem "document.all", oder?

Nutze das aber des öfteren und der Firefox hat zumindest bei mir damit scheinbar keine Probleme...

Leider hat dein Tip aber auch nicht geholfen, also habe ich jetzt folgendes gemacht:

Code:
if (document.getElementById("resolution0") !=""){
      document.write("Hallo")
}

Das, was ich in meinem ersten Code-Kästchen bei der Eröffnung dieses Beitrags geschrieben habe, ist durch die id aufrufbar, also beispielsweise:

Code:
<div id="resolution0">
</div>

schreibt den Inhalt, der durch den Array abgelegt wurde auf den Bildschirm. (Warum auch immer...)

Durch meine if-Abfrage, die ich jetzt habe, führt das "document.write("Hallo")" aus, allerdings auch dann, wenn kein Inhalt von einem Array übergeben wurde...

Also müsste ich die Abfrage irgendwie modifizieren, so dass die Bedingung nur dann wahr ist, wenn Inhalt durch einen Array übergeben wurde...

Ich hoffe, ich habe mich nicht zu umständlich ausgedrückt, und ihr versteht, was ich meine...
 
LongDonJohn hat gesagt.:
zu deinem P.S.: wegen dem "document.all", oder?
Ja, genau.
LongDonJohn hat gesagt.:
Nutze das aber des öfteren und der Firefox hat zumindest bei mir damit scheinbar keine Probleme...
Tatsächlich unterstützt der Firefox auch document.all. Das wußte ich jetzt nicht. Allerdings erscheint in der Javascript-Konsole eine Warnungsmeldung das man besser getElementById verwenden soll.

LongDonJohn hat gesagt.:
Code:
<div id="resolution0">
</div>
Wenn du das so ins HTML Dokument schreibst, dann ist das innerHTML nicht leer, denn es enthält ja zumindest den Zeilenumbruch. Wenn du es so notierst:
Code:
<div id="resolution0"></div>
dann ist es auch leer.

LongDonJohn hat gesagt.:
Also müsste ich die Abfrage irgendwie modifizieren, so dass die Bedingung nur dann wahr ist, wenn Inhalt durch einen Array übergeben wurde...
Du kannst doch mit PHP direkt die Bedingung schreiben. Wenn du ein gefülltes Array hast, schreibst du true andernfalls false rein.

Gruß
 

Neue Beiträge

Zurück