经典ASP打印的是变量名而不是值



我需要将服务器变量的值传递给经典ASP中的Javascript。我在我的ASP文件中写了以下代码

<%
str = "<chart caption="Monthly revenue for last year" subcaption="Harry&#39;s SuperMart" xaxisname="Month" yaxisname="Revenues (In USD)" numberprefix="$" theme="fint">    <set label="Jan" value="420000" />    <set label="Feb" value="810000" />    <set label="Mar" value="720000" />    <set label="Apr" value="550000" />    <set label="May" value="910000" />    <set label="Jun" value="510000" />    <set label="Jul" value="680000" />    <set label="Aug" value="620000" />    <set label="Sep" value="610000" />    <set label="Oct" value="490000" />    <set label="Nov" value="900000" />    <set label="Dec" value="730000" /></chart>"
%>
<script type="text/javascript">alert("<%=str%>")</script>

现在的问题是,它总是显示带有"<%=str%>"的警报,而不是str 的值

我使用单引号,没有问题。所以试试

<script type="text/javascript">alert('<%=str%>')</script>

首先,ASP不使用斜杠来允许使用引号字符,而是使用两个双引号。因此,"的所有实例都应该改为",以创建一个双引号字符。其次,如果您正在执行以双引号开头的javascript警报,则双引号内的值也不能包含它们(因为它们本质上会停止要发出警报的字符串,这不是所需的效果)。在上面的代码示例中,从视觉上看,您似乎在提醒<%=str%>,但如果你做了一个视图源,你会发现你实际上是在警告str的"值",它会创建这个javascript混乱:

<script type="text/javascript">alert("<chart caption="Monthly revenue for last year" subcaption="Harry&#39;s SuperMart" xaxisname="Month" yaxisname="Revenues (In USD)" numberprefix="$" theme="fint">    <set label="Jan"  value="420000" />    <set label="Feb" value="810000" />    <set label="Mar" value="720000" />    <set label="Apr" value="550000" />    <set label="May" value="910000" />    <set label="Jun" value="510000" />    <set label="Jul" value="680000" />    <set label="Aug" value="620000" />    <set label="Sep" value="610000" />    <set label="Oct" value="490000" />    <set label="Nov" value="900000" />    <set label="Dec" value="730000" /></chart>");</script>

所以我不知道你为什么要提醒这个奇怪的字符串,但如果你用单引号开始/结束提醒,你就不会与ASP变量的双引号发生冲突,你至少会让提醒生效。

我测试了上面的更改,它提醒很好

最新更新