为什么一些vbscript的对象和方法不能在asp中的<%%>中使用

比如1.asp文件中<script>document.write("hello")</script>正确但改为<%document.write("hello")%>出错,... 比如1.asp文件中<script>document.write("hello")</script>正确但改为<%document.write("hello")%>出错,还有alert,msgbox也是如此,有没有什么具体的相关语法规定? 展开
 我来答
网海1书生
科技发烧友

2012-10-22 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12310 获赞数:26223

向TA提问 私信TA
展开全部
<% %>中的代码是运行在服务器上的,所以你可以想象一下,如果MsgBox可以在<% %>中使用,那么所弹出的窗口也是在服务器的屏幕上的,跟客户端的浏览器是没有一毛钱关系的。你还可以进一步想像一下:假如多人同一时间浏览同一页面,那么服务器的屏幕上将被MsgBox弹出的窗口塞满!document.write也一样,它是在本地浏览器中显示信息的,所以也不能用在<% %>中。ASP中是用<%response.write "hello"%>来显示信息的,这是告诉服务器把“hello”发送给客户端的浏览器,浏览器接收到信息后再显示到屏幕中。
<script>document.write("hello")</script>这个则是直接运行在客户端的,所以它是没问题的。
因此你可以在ASP中这样处理:
<%response.write "<script>document.write('hello')</script>"%>
这是让服务器把<script>document.write('hello')</script>发送给客户端浏览器,由浏览器再去进一步解析执行这段脚本代码。
再多说两个例子:
<%response.write "<script>alert('hello');</script>"%>
<%response.write "<script language=vbscript>msgbox 'hello'</script>"%>
以上两个都可以在浏览器弹出对话框,第一个是javascipt的,第二个是VBScript的。

总结一下就是:凡是在本地进行输出的VBScript代码,就是不能用在ASP的<% %>中的,而ASP本身也有很多特性是不能用在客户端VBScript中的,主要是涉及服务器的一些对象和属性,如server、session、request、response等等
jiangxibaiyi
2012-10-22 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14411

向TA提问 私信TA
展开全部
asp其实是一个框架
使用2中语言来编写:vbscript和javascript
vbscript是不支持js语法的,
要支持js语法,那么在asp文件的最顶部,也就是第一行加上或者改成
@LANGUAGE="JAVASCRIPT"
记得左右要有asp代码块<%%>
这样表示当前的asp文件是使用javascript语言来编写的

不过asp,绝大部分都是使用vbscript来写的,很少很少有人使用javascript来写
追问
document也是VBScript的对象
例如我写成以下正确,

document.write("hello")

但按照你的方法改为

仍然错误
追答
<script 和<%是有差别的
不能一概而论
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式