javascript和vbscript互相的问题

lsys 2002-10-14 09:36:08
--------文件:dataconnSQL.js
var DataConnSQL;
DataConnSQL=new ActiveXObject("Adodb.connection");
DataConnSQL.ConnectionString ="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=aspmodal;Data Source=linzm";
DataConnSQL.Open;
----文件:testvbs.asp
<%@ Language="VBScript"%>
<HTML>
<HEAD>
<script runat=server language="javascript" src="dataconnSQL.js"></script
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
</HEAD>
<body>
<% Response.Write(DataConnSQL.ConnectionString)%>
</body>
</HTML>
(输出结果正确)
----文件:testjs.asp
<%@ Language="jScript"%>
<HTML>
<HEAD>
<script runat=server language="javascript" src="dataconnSQL.js"></script
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
</HEAD>
<body>
<%Response.Write(DataConnSQL.ConnectionString);%>
</body>
</HTML>
(输出结果错误:
Microsoft JScript 运行时错误 (0x800A138F)
'DataConnSQL.ConnectionString' 为空或不是对象
)

为什么会这样!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
58 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-10-15
  • 打赏
  • 举报
回复
dataconnSQL.js =>

var str;
function dataconn(){
str="js";
Response.Write("["+str+"]");
}
lsys 2002-10-15
  • 打赏
  • 举报
回复
---dataconnSQL.js
function dataconn(){
str="js";
Response.Write("["+str+"]");
}
-----testjs.asp
<%@ Language="javascript"%>
<%var str;%>
<HTML><HEAD>
<script runat=server language="javascript" src="dataconnSQL.js"></script>
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
</HEAD><body>
<% dataconn();
Response.Write("{"+str+"}");%>
</body></HTML>
---testVbs.asp
<%@ Language="VBScript"%>
<%dim str%>
<HTML><HEAD>
<script runat=server language="javascript" src="dataconnSQL.js"></script>
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
</HEAD><body>
<% dataconn()
Response.Write("{"+str+"}")%>
</body></HTML>
(两个输出结果是相同的:[js]{js} )
*****************************************************
这样有一个缺点:做两个定义
需要<%var str;%>,<%dim str%>
有没有更好的解决办法
lsys 2002-10-15
  • 打赏
  • 举报
回复
秋水:原因已经找到,有没有解决的办法,
arclala 2002-10-15
  • 打赏
  • 举报
回复
在脚本语法中,有RUNAT参数,表示该脚本是运行在服务器上还是客户机上。如果有RUNAT=SERVER则脚本运行在服务器上,由ASP解释程序来解释执行,并将结果传递给WWW服务器;否则就是运行在客户机上,由浏览器的脚本虚拟机解释执行,这时,和一般的脚本没有区别。所以,一定要注意ASP语法中的命令,如:REQUEST,QUERYSTRING,WRITE等命令或对象必须在具备RUNAT参数的脚本运行;而访问HTML的FORM对象的脚本一定没有RUNAT参数,因为HTML的FORM是客户机方面的对象,服务器无法访问。
yxknet 2002-10-15
  • 打赏
  • 举报
回复
<script runat=server language="javascript" src="dataconnSQL.js"></script>

次句中的runat=server是什么意思?

是说js能在服务器端执行吗!!!
Lostinet 2002-10-15
  • 打赏
  • 举报
回复
我一般是这样的:
用JScript来进行处理数据,用VBScript来做输出

<%@Language=VBScript%>
<SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT SRC=A.JS></SCRIPT>
<SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT>
//PrepareData
</SCRIPT>
<%=somevar%>
<%while not rsdata.EOF%>

<%=rsdata("fld").Value%>

<%rsdata.MoveNext%>
<%wend%>
qiushuiwuhen 2002-10-14
  • 打赏
  • 举报
回复
测试结果说明,如果相同语言,先执行该页面代码,再继续执行script标签,否则先执行script标签,再继续执行该页面代码
测试数据
dataconnSQL.js

var str="js";
Response.Write("["+str+"]");

testjs.asp
<%@ Language="javascript"%>
<HTML>
<HEAD>
<script runat=server language="javascript" src="dataconnSQL.js"></script>
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
</HEAD>
<body>
<% Response.Write("{"+str+"}")%>
</body>
</HTML>

testvbs.asp
<%@ Language="VBScript"%>
<HTML>
<HEAD>
<script runat=server language="javascript" src="dataconnSQL.js"></script>
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
</HEAD>
<body>
<% Response.Write("{"+str+"}")%>
</body>
</HTML>

测试结果:
testjs.asp
{undefined} [js]
testvbs.asp
[js] {js}
孟子E章 2002-10-14
  • 打赏
  • 举报
回复
DataConnSQL.Open();应该加括号。js的方法都带括号的

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧