Hallo zusammen,
ich fange gerade erst an mich mich JavaScript zu beschäftigen und schon wurde meine erste Variable gefangengenommen ;-)
ich möchte einen String, der von einem CMS-Plugin generiert wird, benutzen um eine if-Anweisung zu füttern. Die einzige Möglichkeit, die ich gefunden habe um den String auszulesen, ist ein iframe.
<?php
$iframe .= "<iframe id=\"upload_target\" name=\"upload_target\" src=\"/index.php?usw.\" style=\"border:0px solid #fff;\" onload=\"getIFrame()\"></iframe>";
?>
Im iframe rufe ich die Funktion getIFrame() auf:
<script type="text/javascript">
function getIFrame() {
var IFrame = frames["upload_target"];
var IFrameHTML = IFrame.document.body.innerHTML;
//alert(IFrameHTML); //gibt den String aus
var msgAnfang = IFrameHTML.indexOf("msg");
msgAnfang = msgAnfang + 6;
//alert(msgAnfang);
var msgEnde = IFrameHTML.indexOf("mclass");
msgEnde = msgEnde - 3;
//alert(msgEnde);
msgAusgabe = IFrameHTML.substring(msgAnfang, msgEnde);
alert("innerhalb der Funktion: " + msgAusgabe); //gibt den interessanten Teil des Stings aus
}
Jetzt führe ich den php-code von oben aus:
~~~html
var iframe = '<?php echo $iframe; ?>';
document.write(iframe);
So weit so gut. Ich bekomme ein Pop-Up mit dem erwarteten Ergebnis
Jetzt möchte ich aber auch außerhalb der Funktion auf "msgAusgabe" zugreifen
`alert ("außerhalb der Funktion" + msgAusgabe);`{:.language-html}
bzw.
~~~html
if (msgAusgabe == "meinString") {
document.write(mehrHTML)
}
Ich habe gelesen, dass variblen die ohne "var" definiert wurden auch außerhalb von Funktionen verfügbar sind aber ich kann nicht darauf zugreifen. Warum?