2017-09-29 3 views
0

Ich versuche, Flash-Nachrichten abzurufen und sie in einem Textbereich auf einer Webseite anhängen. Die Funktion funktioniert ohne den flash/flash-Code, aber der Versuch, Flash-Code mit Javascript zu mischen funktioniert nicht. Ich rufe diese Funktion mit einem onclick = "get_flash();" Der Onclick funktioniert ohne den eingebetteten Flash-Code.Flash-Nachricht an Textbereich angehängt

head> 
<script type="text/javascript"> 
function get_flash(){ 
{% with messages = get_flashed_messages() %} 
    {{% if messages %} 
     {% for message in messages() %} 
      document.getElementById('msg_box').innerHTML+={{message}}; 
     {% endfor %} 
    {% endif %} 
{% endwith %} 
} 
+0

Haben Sie "Nachrichten" ohne die Klammern versucht? – Mangohero1

+0

tat ich. Keine Änderung. Ich schneide Zeile für Zeile aus der Funktion heraus, um zu sehen, welche Zeile problematisch ist. Die Funktion wird undefiniert, auch wenn die erste Zeile die einzige Zeile ist. Die Funktion funktioniert, wenn ich nur die eine document.getElement-Zeile belasse. – creeser

Antwort

1

Ihr Code führt zu einem unerwarteten Bezeichnerfehler. Setzen Sie Zitate um Ihre {{message}} Variable.

{% with messages = get_flashed_messages() %} 
    {% if messages %} 
     {% for message in messages %} 
      document.getElementById('msg_box').innerHTML += "{{message}}"; 
     {% endfor %} 
    {% endif %} 
{% endwith %} 
+0

Hat nicht geholfen. Ich bekomme: TypeError, 'Funktion' Objekt ist nicht im VSC Debugger iterierbar. – creeser

+0

Entfernen Sie die Klammern, sollte sein '{% für Nachricht in Nachrichten%}' – Mangohero1

+0

Erhalten Sie keinen Fehler in VSC Debugger jetzt. Die Funktion get_flash existiert im Browser-Debugger nicht, wenn onclick = "get_flash()" ausgeführt wird. Der Code sieht genauso aus wie oben, außer dass die() aus Nachrichten entfernt werden. – creeser

Verwandte Themen