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