在JavaScript中转义/取消隐藏html?

时间:2015-03-13 20:01:28

标签: javascript html django python-2.7

关于从js中转义/取消隐藏html的stackoverflow,有很多回答的问题。但我发现它很难理解,因为它不能很好地适应我的背景。我有一个变量"消息"它有这个字符串:

message="<a href="www.google.com">Google</a>"

我正在使用&#34; this.message&#34;在js文件中显示此消息。我没有看到超链接&#34; Google&#34;,而是可以直接看到整个字符串:

<a href="www.google.com">Google</a>

如果我检查元素,我可以看到这个字符串被翻译成:

&lt;a href="www.google.com"&gt;Google;&lt;&gt

如何获得超链接谷歌?我必须逃离/不可见吗?怎么样?

显示消息的代码:

$.each(mdn.notifications || [], function() {
            $('<div class="notification">' + this.message + '</div>')[insertLocation.method](insertLocation.selector);
        });

1 个答案:

答案 0 :(得分:0)

在django模板中添加html格式,如下所示:

{% if messages %}notifications: [
                {% for message in messages %}{% if 'wiki_redirect' not in message.tags or waffle.flag('redirect_messages') %}{message: "<div class='my-message'>{{ message }}</div>", tags: "{{ message.tags }}", level: "{{ message|level_tag }}"}{% if not loop.last %},{% endif %}{% endif %}
                {% endfor %}
            ],
            {% else %}
            notifications: [],
            {% endif %}

或者您可以在客户端javascript中添加html格式,如下所示:

$.each(mdn.notifications || [], function() {
            // Make it so
            $('<div class="notification ' + this.level + ' ' + this.tags + '" data-level="' + this.level + '"><div class="my-message">' + this.message + '</div></div>')[insertLocation.method](insertLocation.selector);
        });