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

时间:2016-05-03 10:12:57

标签: web vbscript asp-classic

我需要将服务器变量的值传递给经典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>

现在问题是它始终显示一个警告&#34;&lt;%= str%&gt;&#34;而不是str的值

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

首先,ASP不使用斜杠来允许使用引号字符,它使用两个双引号。因此,所有实例的“应更改为”以创建双引号字符。其次,如果您正在执行以双引号开头的javascript警报,则双引号内的值也不能包含它们(因为它们基本上会阻止字符串被警告,这不是预期的效果。)在上面的代码示例中,看起来你正在警告&lt;%= str%&gt;但如果你做了一个视图源,你会看到你是实际上警告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变量的双引号发生冲突,你至少会得到警报工作。

我测试了上面的变化并且它提醒了很好

相关问题