asp通过fso生成复杂js的问题请教

iou33449999 2008-04-09 11:17:24
我有一段js代码,其中某变量(myasp)需要通过asp从数据库中取得,并将该变量传递给这段js代码,以便随时调用这个js文件。

由于希望避免每次调用都访问数据库,因此想通过asp的fso方法生成这个js文件,其中也会包含myasp这个变量了,以后只有特定条件下(比如新增数据到数据库后)才访问一次数据库并重新生成一下这个js就好了。

思路是清楚了,能力却限制了我的实际操作,请问这个思路对不对?怎么样实现呢?以下是我目前的代码片断……

<!-- #include file="conn.asp" -->

<%
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * from [tables] where id is not null"
rs.Open sql,conn,1,1
do while not rs.eof
myasp= myasp & rs("id") '==这个就是取得的myasp变量
rs.movenext
loop
rs.close
set rs=nothing
%>

<script language="JavaScript" type="text/javascript">
<!--
//myasp是asp方法查询得到了数据库信息,按下列方式引入js中……
var keys = [<%=myasp%>]
var bookmark;
if(document.createRange){
var range = document.createRange();
}else{
var range = document.body.createTextRange();
bookmark = range.getBookmark();
}
var key;
for(var i = 0;key = keys;i++){
if(range.findText){
range.collapse(true);
range.moveToBookmark(bookmark);
while(range.findText(key[0])){
range.pasteHTML("<a href="+ key[1] +" class="+ key[2] +" target=_blank>"+ range.text +"</a>");
}
}else{
var s,n;
s = window.getSelection();
s.collapse(document.body,0);
while(window.find(key[0])){

var n = document.createElement("A");
n.href = key[1];
n.style.color = key[2]

s.getRangeAt(0).surroundContents(n);
}
}
}
//--></script>[/code]

我希望通过fso在当前目录下生成的js文件名称为my.js,谁帮我看看好吗?
...全文
72 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
iou33449999 2008-04-10
谢谢1楼 刚刚发现了一个很好的方法 http://www.cha88.cn/safe/htmltoasp.php 这样就不用复制粘贴很多遍了 ^_^
回复
小逗狗 2008-04-09
这个正解让我复制粘贴了好半天!_!
回复
文盲老顾 2008-04-09
1 楼正解,鉴定完毕
回复
其实一样的,你把你的JS代码当作字符串就可以了
回复
小逗狗 2008-04-09
<!-- #include file="conn.asp" -->

<%
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * from [tables] where id is not null"
rs.Open sql,conn,1,1
do while not rs.eof
myasp= myasp & rs("id") '==这个就是取得的myasp变量
rs.movenext
loop
rs.close
set rs=nothing
Set fso = CreateObject(FSObject)

Set MyFile = fso.CreateTextFile(Server.mapPath("my.js"), True)

MyFile.WriteLine("<script language=""JavaScript"" type=""text/javascript""> ")
MyFile.WriteLine("<!-- ")
MyFile.WriteLine("//myasp是asp方法查询得到了数据库信息,按下列方式引入js中…… ")
MyFile.WriteLine("var keys = [ "&myasp&">]")
MyFile.WriteLine("var bookmark;")
MyFile.WriteLine("if(document.createRange){")
MyFile.WriteLine(" var range = document.createRange(); ")
MyFile.WriteLine("}else{ ")
MyFile.WriteLine(" var range = document.body.createTextRange(); ")
MyFile.WriteLine(" bookmark = range.getBookmark(); ")
MyFile.WriteLine("} ")
MyFile.WriteLine("var key; ")
MyFile.WriteLine("for(var i = 0;key = keys;i++){")
MyFile.WriteLine(" if(range.findText){ ")
MyFile.WriteLine(" range.collapse(true); ")
MyFile.WriteLine(" range.moveToBookmark(bookmark);")
MyFile.WriteLine(" while(range.findText(key[0])){ ")
MyFile.WriteLine(" range.pasteHTML( <a href=+ key[1] + class=+ key[2] + target=_blank>+ range.text + </a>); ")
MyFile.WriteLine(" } ")
MyFile.WriteLine(" }else{ ")
MyFile.WriteLine(" var s,n; ")
MyFile.WriteLine(" s = window.getSelection(); ")
MyFile.WriteLine(" s.collapse(document.body,0); ")
MyFile.WriteLine(" while(window.find(key[0])){ ")

MyFile.WriteLine(" var n = document.createElement(""A""); ")
MyFile.WriteLine(" n.href = key[1]; ")
MyFile.WriteLine(" n.style.color = key[2]")

MyFile.WriteLine(" s.getRangeAt(0).surroundContents(n); ")
MyFile.WriteLine(" } ")
MyFile.WriteLine(" } ")
MyFile.WriteLine("} ")


MyFile.WriteLine(")")

MyFile.Close

set MyFile=nothing
%>
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-09 11:17
社区公告
暂无公告