我需要将服务器变量的值传递给经典ASP中的Javascript。我在我的ASP文件中编写了以下代码
<%
str = "<chart caption=\"Monthly revenue for last year\" subcaption=\"Harry'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的值
答案 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'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变量的双引号发生冲突,你至少会得到警报工作。
我测试了上面的变化并且它提醒了很好