我正在尝试使用javascript创建超链接。现在请记住,这是在一个不一定与DOM相关的函数中完成的。因此,操纵DOM的解决方案是不可能的。
这是我提出来的,当我输出它时,它只是作为一个字符串出现,anchor tag
不被解释。
alert_message = 'Wrote a message on <a href="' + url_builder + '"> your profile</a>.';
return alert_message;
然后alert_message
打印到网站上。如何强制它读取html标签?它只是将它视为一个字符串,我得到以下输出。
输出:
"Wrote a message on <a href="/members/tester/#kT6YkY8eDZdGDYQzQ"> your profile</a>."
答案 0 :(得分:3)
默认情况下,使用Meteor模板中的{{helper}}
插入的字符串进行转义,因此嵌入式HTML将作为纯文本显示在浏览器中。您可以使用{{{helper}}}
(三重括号)来防止此自动转义。在这种情况下,你应该确定你没有打开自己的XSS。
或者,您可以创建另一个模板,例如:
<template name="wroteOnProfileAlert">
<a href="/members/{{writer.username}}">{{writer.username}}</a>
wrote a message on
<a href="/members/tester/#{{user._id}}">your profile</a>
<!-- if you're using Iron Router, use {{pathFor}} to generate URLs -->
</template>
除非您有某些特定原因,否则您应该更喜欢编写另一个模板而不是使用字符串连接生成HTML。