【问题标题】:Flash flash message appended to text area [duplicate]Flash Flash消息附加到文本区域[重复]
【发布时间】:2018-03-11 17:24:26
【问题描述】:

我正在尝试检索 Flash 消息并将它们附加到网页的文本区域中。该功能在没有烧瓶/闪存提供的代码的情况下工作,但尝试将闪存代码与 javascript 混合是行不通的。我用 onclick="get_flash();" 调用这个函数在没有嵌入 Flash 代码的情况下,onclick 确实可以工作。

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 %}
}

【问题讨论】:

  • 你试过不带括号的messages吗?
  • 我做到了。不用找了。我一次从函数中剪下一行,看看哪一行有问题。即使第一行是唯一的行,该函数也变得未定义。如果我只留下一个 document.getElement 行,则该功能有效。

标签: javascript flask flash-message


【解决方案1】:

您的代码导致出现意外标识符错误。在您的 {{message}} 变量周围加上引号。

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

【讨论】:

  • 我认为当你 get_flashed_messages 时,服务器上的队列被清空,随后的调用将返回空。这段代码是否有问题继续附加最后一条消息。我有一个 setInterval 每秒调用 get_flashed_message。 {% with messages = get_flashed_messages() %} {% if messages %} var strng = "";常量 div = document.getElementById('msg_box'); {% for message in messages %} strng = "{{message}}" + "\r"; div.insertAdjacentHTML('beforeEnd', strng); {% endfor %} {% endif %} {% endwith %} }
猜你喜欢
  • 2022-01-24
  • 2014-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
相关资源
最近更新 更多