我用节点js写了一个小程序,我用ejs作为模板。在我的程序中,我计算了两个参数'msg1'和'msg2',我想在模态窗口中显示。不幸的是,我无法用ejs做到这一点。
答案 0 :(得分:0)
据我了解,您在服务器上运行.ejs模板,而不是客户端。
<% %>
内的任何内容都作为模板的一部分运行,这意味着它正在尝试在服务器中调用alert
。这应该失败。
您尚未说出msg1
和msg2
是什么。如果它们是客户端变量,那么您只需要:
function alertNumber() {
alert(msg1 + msg2)
}
这意味着你甚至不需要模板 - 它只是一个HTML文件。另一方面,如果msg1
和msg2
是服务器端变量,则需要使用模板插入它们。一个天真的方式是这样的:
function alertNumber() {
alert('<%- msg1 + msg2 %>')
}
仅当msg1 + msg2
不包含字符'
,\
,换行符,回车以及可能错过的其他字符时,此方法才有效。如果是这样,脚本可能会失败。特别是,除非msg1
和msg2
来自受信任的来源,否则不要这样做,因为控制它们的人将能够将他们想要的任何javascript代码注入客户端。但是,如果你可以保证它们是数字,那么这不会是一个问题。
最后但并非最不重要......你已经定义了alertNumber
。你真的使用过这个功能吗?