标题:body onload 事件为什么不能执行?
只看楼主
大浪淘沙001
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-6-11
结帖率:0
已结贴  问题点数:20 回复次数:14 
body onload 事件为什么不能执行?
如题,我用两个ASP文件实现一个弹窗广告的功能,执行的时候没有任何代码错误报告,就是不能执行。代码如下,

FocusLoad.asp包含在另一个文件中,代码:

<%
dim rs,ADsName,ADsWidth,ADsHeight
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 * from ABCD_Ads where ViewFlag"&Language&" order by id desc",conn,1,1
if rs.bof and rs.eof then response.end
ADsName=rs("ADsName"&Language)
ADsWidth=rs("ADsWidth")
ADsHeight=Rs("ADsHeight")
rs.close
set rs=nothing  
%>
<HTML>
<HEAD>
<TITLE></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
function OpenWin(){
  window.open("FocusView.asp","<%=ADsName%>","width=<%=ADsWidth%>,height=<%=ADsHeight%>")
}
function getCookie(Name){
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0){
    offset = document.cookie.indexOf(search)
    if (offset != -1) {
      offset += search.length
      end = document.cookie.indexOf(";", offset);
      if (end == -1) {
        end = document.cookie.length;
        returnvalue=unescape(document.cookie.substring(offset,end))
      }
    }
    return returnvalue;
  }
}
/*
function LoadPopup(){
  if (get_Cookie('popped')==''){
    OpenWin()
    document.cookie="popped=yes"
  }
}
*/
function LoadPopup(){
  OpenWin()
}
</script>
</HEAD>
<BODY  onload="LoadPopup()">
</BODY>
</html>

FocusView.asp代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Option Explicit %>
<% response.charset="utf-8" %>
<!--#include file="../Include/Const.asp" -->
<!--#include file="../Include/ConnSiteData.asp" -->
<%
dim rs,ADsName,Content
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 * from ABCD_Ads where ViewFlag"&Language&" order by id desc",conn,1,3
ADsName=rs("ADsName"&Language)
Content=rs("Content"&Language)
rs("ClickNumber")=rs("ClickNumber")+1
rs.update
rs.close
set rs=nothing  
%>
<HTML>
<HEAD>
<TITLE><%=ADsName%></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="Css/Style.css">
<style type="text/css">
<!--
body{
    margin:0px;
    background:none;
    }
-->
</style>
</HEAD>
<BODY>
<%=Content%>
</BODY>
</html>
搜索更多相关主题的帖子: body onload 
2010-06-11 18:14
笨笨林
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:482
专家分:408
注 册:2007-7-28
得分:6 
楼主应该先去了解一下ASP与JAVASCRIPT的区别。

程序授权说明:http://www./authorization.php  无路难开路难。  帮助别人是快乐的,也只有帮助别人,才能得到别人的帮助。互相帮助,才能共同进步。
2010-06-11 18:51
大浪淘沙001
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-6-11
得分:0 
斑竹意思是这不是ASP问题么?
实话说咱还真是弄不清ASP与JAVASCRIPT什么样关系呢,不过还是求高手解答标题所示问题。。。
2010-06-11 19:23
ysf0181
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:55
帖 子:914
专家分:2385
注 册:2006-10-4
得分:6 
以下是引用笨笨林在2010-6-11 18:51:13的发言:

楼主应该先去了解一下ASP与JAVASCRIPT的区别。
   不如不要回答,浪费时间和表情。

ASP讨论QQ群:251346273
2010-06-11 21:00
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:6 
function getCookie(Name){
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0){
    offset = document.cookie.indexOf(search)
    if (offset != -1) {
      offset += search.length
      end = document.cookie.indexOf(";", offset);
      if (end == -1) {
        end = document.cookie.length;
        returnvalue=unescape(document.cookie.substring(offset,end))
      }
    }
    return returnvalue;
  }
}
/*
function LoadPopup(){
  if (get_Cookie('popped')=='')
    OpenWin()
    document.cookie="popped=yes"
  }
}
get_Cookie根本不存在,你执行100次也不会执行括号里的代码的!调用必存在,改为getCookie



Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-06-11 22:01
大浪淘沙001
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-6-11
得分:0 
楼上版主,你很细心,不过如果你再仔细看代码,就会发现getcookie()这个函数其实是执行不到的。这个程序包含了两种实现弹窗广告的方法,一种是打开页面即弹出,一种是一个IP弹出一次。而以下这个函数本来就是作为注解出现,所以弹窗广告不能弹出与你提到的函数名不符没关系。
/*
function LoadPopup(){
  if (get_Cookie('popped')==''){
    OpenWin()
    document.cookie="popped=yes"
  }
}
*/
2010-06-12 10:48
大浪淘沙001
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-6-11
得分:0 
期待高手。。。
2010-06-12 13:59
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:0 
在你提供的代码里只有弹窗代码,并没有一个IP只弹一次这个判断语句,应此也只能执行一个弹出窗口!
核心就是这句了:
function OpenWin(){
  window.open("FocusView.asp","<%=ADsName%>","width=<%=ADsWidth%>,height=<%=ADsHeight%>")
}
难道这句也不执行吗?是否有什么错误提示!JS调试可以进行一下警告判断!以确定它执行到哪里了!比如上面的代码,我加个alert(1);到里面去就能知道这个函数是否被开启:
function OpenWin(){
   alert(1)
  window.open("FocusView.asp","<%=ADsName%>","width=<%=ADsWidth%>,height=<%=ADsHeight%>")
}

如果我说的那个判断COOKIE的函数是被注释掉的话,那么这个函数也像是多余的function getCookie(Name)
按理说,如果你要实现根据IP来弹窗,应该是需要那些语句的,不能把它注释掉!原理就是把服务端取得的客户IP写入客户端的COOKIE,第一次访问因为没有IP的COOKIE,所以弹出,第二次因为写入了IP相关值,COOKIE有值,就不在执行弹出窗口!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-06-13 14:21
大浪淘沙001
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-6-11
得分:0 
可能之前那个写得有点复杂,简化之后代码如下,

FocusLoad.asp包含在另一个文件中,代码:

<%
dim rs,ADsName,ADsWidth,ADsHeight
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 * from ABCD_Ads where ViewFlag"&Language&" order by id desc",conn,1,1
if rs.bof and rs.eof then response.end
ADsName=rs("ADsName"&Language)
ADsWidth=rs("ADsWidth")
ADsHeight=Rs("ADsHeight")
rs.close
set rs=nothing  
%>
<HTML>
<HEAD>
<TITLE></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
function OpenWin(){
  window.open("FocusView.asp","<%=ADsName%>","width=<%=ADsWidth%>,height=<%=ADsHeight%>")
}
function LoadPopup(){
  OpenWin()
}
</script>
</HEAD>
<BODY  onload="LoadPopup()">
</BODY>
</html>

FocusView.asp代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Option Explicit %>
<% response.charset="utf-8" %>
<!--#include file="../Include/Const.asp" -->
<!--#include file="../Include/ConnSiteData.asp" -->
<%
dim rs,ADsName,Content
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 * from ABCD_Ads where ViewFlag"&Language&" order by id desc",conn,1,3
ADsName=rs("ADsName"&Language)
Content=rs("Content"&Language)
rs("ClickNumber")=rs("ClickNumber")+1
rs.update
rs.close
set rs=nothing  
%>
<HTML>
<HEAD>
<TITLE><%=ADsName%></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="Css/Style.css">
<style type="text/css">
<!--
body{
    margin:0px;
    background:none;
    }
-->
</style>
</HEAD>
<BODY>
<%=Content%>
</BODY>
</html>

事实上我即使将LOADPOP整个函数删除,程序都不会提示错误,所以我认为是ONLOAD事件没有执行。
2010-06-13 14:42
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:0 
<%
dim rs,ADsName,ADsWidth,ADsHeight
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 * from ABCD_Ads where ViewFlag"&Language&" order by id desc",conn,1,1
if rs.bof and rs.eof then response.end
ADsName=rs("ADsName"&Language)
ADsWidth=rs("ADsWidth")
ADsHeight=Rs("ADsHeight")
rs.close
set rs=nothing  
%>
<HTML>
<HEAD>
<TITLE></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
function OpenWin(){
  window.open("FocusView.asp","<%=ADsName%>","width=<%=ADsWidth%>,height=<%=ADsHeight%>")
}
window.onload=function(){OpenWin();}//改成这样呢,是否执行?
</script>
</HEAD>
<BODY>
</BODY>
</html>

FocusView.asp代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Option Explicit %>
<% response.charset="utf-8" %>
<!--#include file="../Include/Const.asp" -->
<!--#include file="../Include/ConnSiteData.asp" -->
<%
dim rs,ADsName,Content
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 * from ABCD_Ads where ViewFlag"&Language&" order by id desc",conn,1,3
ADsName=rs("ADsName"&Language)
Content=rs("Content"&Language)
rs("ClickNumber")=rs("ClickNumber")+1
rs.update
rs.close
set rs=nothing  
%>
<HTML>
<HEAD>
<TITLE><%=ADsName%></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="Css/Style.css">
<style type="text/css">
<!--
body{
    margin:0px;
    background:none;
    }
-->
</style>
</HEAD>
<BODY>
<%=Content%>
</BODY>
</html>

另外你的ASP页面是否有用这个on error resume next语句??

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-06-13 16:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-310002-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076354 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved