2004-2-26程序设计类答疑整理

2005-1-16 15:43:00   Count:
 

1.Dophin问:为什么我实现的的是滚动条向上滚动,而不是向下?
 display.asp代码:
<% @ language=vbscript %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="refresh" content="5;url="display.asp"><BR><FONT color=#660000><script language="javascript1.1"><BR>function scrollwindow()<BR>{<BR>this.scroll(0,6500);<BR>settimeout('scrollwindow()',200);<BR>}<BR>scrollwindow();<BR></script><BR></FONT><meta name="generator" content="microsoft visual studio 6.0"><BR></head><BR><body><BR><p align=right><%=now%></p><BR><%<BR>response.write application("talk")<BR>%><BR></body><BR></html><BR>
答:
滚动的实现方法:

var y = 0;
var when = null;

function scrollMe() {
  if (document.all && y < document.body.scrollHeight || y < document.height) {
    this.scroll(0,y);
    y = y + 4;
    when = setTimeout('scrollMe()',1);
  }
}

scrollMe() 函数在 onMouseOver或页面双击 事件发生时调用,另一个stopMe() 函数则在onMouseOut 事件或页面单击时调用。
function stopMe() {
  clearTimeout(when);
}

回滚的实现方法:
function rollMe() {
  if (y >= 0) {
    this.scroll(0,y)
    y = y - 4;
    when = setTimeout('rollMe()',1);
  }
}

让内容直接滚动到最上方:
function topMe() {
 this.scroll(0,0);
  y = 0;
}

若在 topMe() 函数中不重新设定变量 y 的值为 0,则当往下或者往上滚动时,页面內容会直接跳回你呼叫 topMe() 之前所在的位置。

滚动到最低端:

function bopMe() {
  if (document.all) {
    this.scroll(0,document.body.scrollHeight);
    y = document.body.scrollHeight;
    } else {
      scroll(0,document.height);
      y = document.height;
      }
}

2.Dophin问:在dreamwaverMX中经常出现中文变成不可认识的代码,如下这段asp程序代码。

这段asp程序代码中的flag是什么意思?
为什么在测试时仍然出现源代码在IE中?
这段asp程序代码:
<% @ language=vbscript %>
<%
flag=0
flag1=0
flag2=1
flag3=1
username=request("username")
no=request("no")
len_no=len(no)
len_username=len(username)
if username<>""and no<>""then
flag=1
if mid(no,1,1)="n" then
flag1=1
end if
for i= 1 to len_no
if mid(no,i,1)="<"then
flag2=0
end if
next
for j=1 to len_username
if mid(username,j,1)="<"then
flag3=0
end if
next
end if
%>
<  % if flag=1 and flag1=1 and flag2=1 and flag3=1 then
session("username")=username
session("no")=no
response.redirect"chatpage.htm"
end if
%>
<html>
<head>
<meta name="generator" content="microsoft visual studio 6.0">
</head>
<body>
<form action="chatmain.asp" method="post">
&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Auml;&atilde;&micro;&Auml;&Atilde;&ucirc;×&Ouml;&pound;&ordm;<input name="username" type="text" size="10" value="dolphin">
&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Auml;&atilde;&micro;&Auml;&raquo;ú&AElig;÷&ordm;&Aring;&pound;&ordm;<input name="no" type="text" size="8" value="n22">
<input type="submit" size="8" value="&Igrave;á&frac12;&raquo;">
</form></body>
</html>
答:这说明你的DreamwaverMX对中文支持不好或有部分中文被删除了半个汉字。建议使用中文版的DreamwaverMX 2004。
    代码中的flag是一个标志变量,用于控制程序的走向的,初始值为0,以下代码只要用户提供的useranme和no不为空,则赋值为1。
   if username<>""and no<>""then
      flag=1
   其它flag1,flag2和flag3功能类似。
   if flag=1 and flag1=1 and flag2=1 and flag3=1 then
      session("username")=username
      session("no")=no
      response.redirect"chatpage.htm"
   end if
   以上代码判断若这些标志变量均为1(即在设置这些变量为1的地方的条件如果都成立的话),则跳转到chatpage.htm页面,否则仍停留在当前的表单提交页面。
   测试时仍然出现源代码在IE中,说明二种情况,一是WEB服务器运行不正常,二是ASP代码表达不正确,比如未加<%或%>标记,或标记表达错误。仔细阅读程序,发现你的以下语句中的<%表达成了<  %
<  % if flag=1 and flag1=1 and flag2=1 and flag3=1 then
将其改为以下格式即可解决问题。
<% if flag=1 and flag1=1 and flag2=1 and flag3=1 then
注意<%中的<和%之间不能有空格。

3.Dophin问:这里有一个简单的聊天室源程序代码,但我就是不能IE正确预览。浏览器返回的结果如下:

HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(用于支持人员)

错误类型:
Microsoft VBScript 编译器错误 (0x800A0400)
缺少语句
/mytest/chat.asp, line 10
&mywords

浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

网页:
GET /mytest/chat.asp

时间:
2004年3月1日, 16:34:37

详细信息:
Microsoft 支持
源代码如下:
<% @ language=vbscript %>
<html>
<head>
</head>
<body>
<%
mywords=request("mywords")
application.Lock
application("chat_content")=application("chat_content")&"<br>"
&mywords
response.write application("chat_content")
application.UnLock
%>
<form action="chat.asp" method="post">
<input type="text" size="30" name="mywords" value="I like chat in the chat room">
<input type="submit value="提交"><BR></form><BR></body><BR></html></FONT></FONT></P>
<P><FONT face=宋体 color=#000000>请问老师,问题在哪里?</FONT></P>
答:
出错报告基本告诉了你出错的位置和原因。
缺少语句
/mytest/chat.asp, line 10
&mywords
将&mywords与上面的语句表达在同一行上,不要分行。最终语句应为:
application("chat_content")=application("chat_content") & "<br>" & mywords

另外,强列建议你在IIS管理器中,启用服务器端脚本调试,这样出错时,系统就会弹出错误调试对话框,会显示程序源代码和出错的具体语句。
打开方法:在默认WEB站点中右击,打开属性对话框,选择主目录->配置->应用程序调试->启用服务器端脚本调试


浏览该文章的用户为您推荐了该信息: 
       
   
   
 
站内检索:
栏目导航
本月授课安排
阅读排行