javascript - ASP.NET中嵌套使用JS里alert的困惑
黄舟
黄舟 2017-04-11 12:46:59
[JavaScript讨论组]

asp.net 中我想让网页弹出一个 alert 框,显示我之前代码中的变量值。
一开始我这么写:

Response.Write("");

页面上什么都不显示,也不弹窗。

后来上网查了些资料,写法如下:

Response.Write("");

请问为什么可以这么写呢?

我的理解是targetAnswer[seed]是我之前逻辑代码中的一个数组的值,所以我一开始想使用<%= %>来解决这个问题,可是失败了,但在第二种写法中,他是如何识别到targetAnswer[seed]是一个数组中的元素而不是一个字符串就叫做是"+targetAnswer[seed]+"呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
PHP中文网

Response.Write("<script> alert('"+targetAnswer[seed]+"')</script>");

是三部分的相加啊
"<script> alert('"
targetAnswer[seed]
"')</script>"
当然可以了

你上面的写法相当于
有个html里

有这么一句话<script> alert(<%=targetAnswer[seed]%>)</script>

alert(<%=targetAnswer[seed]%>)能成功吗? 没有这个变量吧 在js执行的环境中
<%=targetAnswer[seed]%>也不是合法js变量名字

PHP中文网

楼上哥们说的Response.Write()的内容是三部分相加是对的。
我要回答的是你的另一个问题,为什么 <%= %> 这一个做法在Response.Write()的时候无效。

首先我们先看看Response.Write()是什么?
Response简单来说就是服务器返回给浏览器的数据,
而Response.Write(string input)就是直接把input这个数据写到网页上面去了。
Response.Write("Hello world!")的话,你在页面上直接就能看到Hello world!。
同理,如果写入的是JS,用<script></script>标签包起来,这就直接执行JS了。

有了这个前提的话,就可以来看你的问题了。
ASP.NET 使用<%= %> 这个的时候,一般是用于前后台共享变量的。这个没问题吧?
一般来说就是我在后台声明了一个变量,前台直接用这个直接能访问。我们又知道,服务器把前台和后台“组合”好了之后输出到浏览器。
这样的话,数据到了浏览器的时候,还能保持<%= %>这个标识用来访问后台(服务器数据)变量吗?
抱歉,不能。因为输入到浏览器的时候,<%= %> 这里面的数据已经被替换掉了...

这样一来,你用Response.Write()输入<%= %>,数据是永远取不到的了。

阿神

怎么会在邮件里推荐这个问题?这个问题有什么意义吗?sf没内容可推了吗??

Response.Write($"<script> alert('{targetAnswer[seed]}')</script>");

好吧, 你还能这么写

PHP中文网

window.onload().alert()

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号