一段网站流量监测的JS代码

目前遇到一个非常棘手的问题,关于网站流量监测的,而我对如何解决完全没有想法。。
我的js代码地址:http://blog.blacklee.net/uploads/tech/tracker.php

首先简单说一下网站流量监测的基本思路吧
类似于 Google-Analytics ,需要先在被监测网站埋放一个 javascript ,像 ga.js 这样的
这段 js 自动加载执行,读取各个需要的数据,比如 document.referrer 、 cookies 等
然后往 document.body 上添加一个 img 节点,把需要的数据往 img src 的参数里放,向监测服务器发出一个类似的请求:
http://www.google-analytics.com/__utm.gif?utmwv=4.9.1&utmn=176820245&utmhn=www.douban.com&utmcs=UTF-8&utmsr=1440x900&utmsc=24-bit&utmul=zh-cn&utmje=1&utmfl=10.2%20r153&utmdt=%E8%B1%86%E7%93%A3&utmhid=278583876&utmr=-&utmp=%2F&utmac=UA-7019765-1&utmcc=__utma%3D30149280.276662128.1294996086.1300933211.1301276680.16%3B%2B__utmz%3D30149280.1300933211.15.6.utmcsr%3Dtwitter.com%7Cutmccn%3D(referral)%7Cutmcmd%3Dreferral%7Cutmcct%3D%2F%3B&utmu=qBM
后监测服务端分析WEB访问日志,计算数据

我现在的情况是,用了一个 php 生成 javascript:地址 http://blog.blacklee.net/uploads/tech/tracker.php
另此 js 和发出的图片 1.gif ,是位于同一台机器上的
结果是对 tracker.php 这个 js 的请求,总比对 1.gif 这个图片的请求多30%~50%
而预期应该是两者持平的:
[root@centos5 nginx]# grep '/tracker.php' access_2011-03-24.log | wc -l
  39660
[root@centos5 nginx]# grep '/1.gif' access_2011-03-24.log | wc -l
  22050

在 js 里面,我试过用 img 和 iframe 加载图片,效果一样。也试过把 1.gif 改成 __utm.gif ,效果还是一样。。。

困扰多日了,求教。
问题补充
请求图片的地址,每次的参数都不一样,不会有缓存
而且,就算有缓存,WEB服务器的日志里也应当有记录,状态码是304

js加载后自动执行的方法,我也试了直接执行和


if (window.addEventListener) {
window.addEventListener('load', work, false);
} else if (window.attachEvent) {
window.attachEvent('onload', work);
}

这里面的work也就是调用了一个init和submit,没做其它的。
效果没大差别

还有就是,同一网页也放了其它的第三方监测代码,量子统计、百度统计、孔明统计,他们的数据就还好了

另:如何大致检测未加载完成便离开的用户呢?
问题补充
恩,谢谢。
你提到的这几个说法我以前没遇过,长知识了。
回头试验一下你给出的代码~

PS:我这代码目前是放在网页最底部而不在head里

另外我和朋友还试验出了一种情况

var img = new Image();
img.src = "http://xxx";

只设置完img的src后,浏览器(IE8,FF)就去发送请求了。。。
@int08h,你觉得用这个来做手脚靠谱么?

3个回答

我抽空看了一下你的tracker.php,发现这么些问题:
1、javascript的Math.random是不接受seed的,所以Math.random(new Date())其实是没意义的,建议要随机串的话用(Math.random() * 100000).toFixed() + new Date()这样的形式
2、你的img是放在document.body下的,你能保证用户不把tracker.php的引入script标签放在head吗?放在head的话,document.body会报Reference Error,导致1.gif没发送
3、你的onload策略是用来解决document.body的Reference Error问题的,但是中国平均网页的onload时间是在5s以上,这个时间足够让大量用户离开网站了

对于img标签的应用,我建议你这么写:
[code="javascript"]
var img = new Image(),
id = 'img' + new Date();
img.id = id;
img.onload = img.onerror = img.onabort = function() { window[id] = undefined; };
window[id] = img;
img.src = 'http://xxx'; // 此处设置src
[/code]
以上代码需要注意的地方:
1、img.src必须最后设定,不然onload/onerror/onabort可能没用,导致内存无法清理
2、一定要挂到window下,不然如果页面的js执行非常频繁,导致GC很频繁的话,可能这个img的请求没完成的时候img对象被GC了,会导致请求被abort

加载完tracker.php到tracker.php发送1.gif图片请求之间是有时间的,这段时间内用户可能离开网站,根据网站的类型,这个比率可大可小,这个需要你自己检测一下,当然30-50的百分比我确实认为大了点,我没办法看你的1.gif的具体请求信息,难道你不小心加了缓存头?

new Image().src = 'xxx';
这一段确实会发出请求,这是成名已久的日志发送方法,但正如我上文所说,这个Image对象可能碰巧不幸被GC回收,那这个请求就报废(abort)了
所以我给的代码中,先将Image对象挂在了window下,这样这个对象在对象图中就是可达的,不会被GC掉

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
这段网站流量监测的JS代码有问题吗?
目前遇到一个非常棘手的问题,关于网站流量监测的,而我对如何解决完全没有想法。。rn我的js代码地址:http://blog.blacklee.net/uploads/tech/tracker.phprnrn首先简单说一下网站流量监测的基本思路吧rn类似于 Google-Analytics ,需要先在被监测网站埋放一个 javascript ,像 ga.js 这样的rn这段 js 自动加载执行,读取各个需要的数据,比如 document.referrer 、 cookies 等rn然后往 document.body 上添加一个 img 节点,把需要的数据往 img src 的参数里放,向监测服务器发出一个类似的请求:rnhttp://www.google-analytics.com/__utm.gif?utmwv=4.9.1&utmn=176820245&utmhn=www.douban.com&utmcs=UTF-8&utmsr=1440x900&utmsc=24-bit&utmul=zh-cn&utmje=1&utmfl=10.2%20r153&utmdt=%E8%B1%86%E7%93%A3&utmhid=278583876&utmr=-&utmp=%2F&utmac=UA-7019765-1&utmcc=__utma%3D30149280.276662128.1294996086.1300933211.1301276680.16%3B%2B__utmz%3D30149280.1300933211.15.6.utmcsr%3Dtwitter.com%7Cutmccn%3D(referral)%7Cutmcmd%3Dreferral%7Cutmcct%3D%2F%3B&utmu=qBMrn后监测服务端分析WEB访问日志,计算数据rnrn我现在的情况是,用了一个 php 生成 javascript:地址 http://blog.blacklee.net/uploads/tech/tracker.phprn另此 js 和发出的图片 1.gif ,是位于同一台机器上的rn结果是对 tracker.php 这个 js 的请求,总比对 1.gif 这个图片的请求多30%~50%rn而预期应该是两者持平的:rn[root@centos5 nginx]# grep '/tracker.php' access_2011-03-24.log | wc -lrn 39660rn[root@centos5 nginx]# grep '/1.gif' access_2011-03-24.log | wc -lrn 22050rnrn在 js 里面,我试过用 img 和 iframe 加载图片,效果一样。也试过把 1.gif 改成 __utm.gif ,效果还是一样。。。rnrn困扰多日了,求教。
一段JS代码
// A simple helper that allows you to bind new functions to thern// prototype of an objectrnFunction.prototype.method = function(name, func) rnthis.prototype[name] = func;rnreturn this;rn;rn// A (rather complex) function that allows you to gracefully inheritrn// functions from other objects and be able to still call the 'parent'rn// object's functionrnFunction.method('inherits', function(parent) rn// Keep track of how many parent-levels deep we arernvar depth = 0;rn// Inherit the parent's methodsrnvar proto = this.prototype = new parent();rn// Create a new 'priveledged' function called 'uber', that when calledrn// executes any function that has been written over in the inheritancernthis.method('uber', function uber(name) rnvar func; // The function to be executernvar ret; // The return value of the functionrnvar v = parent.prototype; // The parent's prototypern// If we're already within another 'uber' functionrnif (depth) rn// Go the necessary depth to find the orignal prototypernfor ( var i = d; i > 0; i += 1 ) rnv = v.constructor.prototype;rnrn// and get the function from that prototypernfunc = v[name];rnCHAPTER 3 n CREATING REUSABLE CODE 41rn// Otherwise, this is the first 'uber' callrn else rn// Get the function to execute from the prototypernfunc = proto[name];rn// If the function was a part of this prototypernif ( func == this[name] ) rn// Go to the parent's prototype insteadrnfunc = v[name];rnrnrn// Keep track of how 'deep' we are in the inheritance stackrndepth += 1;rn// Call the function to execute with all the arguments but the firstrn// (which holds the name of the function that we're executing)rnret = func.apply(this, Array.prototype.slice.apply(arguments, [1]));rn// Reset the stack depthrndepth -= 1;rn// Return the return value of the execute functionrnreturn ret;rn);rnreturn this;rn);rn// A function for inheriting only a couple functions from a parent object,rn// not every function using new parent()rnFunction.method('swiss', function(parent) rn// Go through all of the methods to inheritrnfor (var i = 1; i < arguments.length; i += 1) rn// The name of the method to importrnvar name = arguments[i];rn// Import the method into this object's prototypernthis.prototype[name] = parent.prototype[name];rnrnreturn this;rn);rnrnrn求// A (rather complex) function that allows you to gracefully inheritrn// functions from other objects and be able to still call the 'parent'rn// object's function 以后代码的详细解释,特别是rnfor ( var i = d; i > 0; i += 1 ) rnv = v.constructor.prototype;rnrn这是什么意思,无限循环?rn还有ret = func.apply(this, Array.prototype.slice.apply(arguments, [1]));其中Array.prototype.slice.apply(arguments, [1])这是什么意思
一段js代码
var medium=true;rn rn function changeWidth()rn rn var img=document.getElementById("imgChangeWidth");rn var lefter1=document.getElementById("lefter");rn var right1=document.getElementById("righter");rn if(medium)rn rn lefter1.style.display="none";rn right1.style.width="100%-208px";rn right1.style.marginLeft="10px";rn img.src="images/lm2.jpg";rn medium=false;rn rn elsern rn lefter1.style.display="block";rn right1.style.marginLeft="208px";rn img.src="images/lm.jpg";rn medium=true;rn rn rn代码如上rn可是执行到right1.style.width="100%-208px";rn时提示参数无效,请各位大虾帮帮忙,用什么方法能实现页面布满浏览器的同时让宽度减小208px
如何向某个网站注入一段js代码?
丁锦昊到此一游的事情大家知道吧,其同学小学网站被黑了,进去就是“丁锦昊到此一游”http://www.yfxjxx.cn/,(估计现在网站不能访问了)。问下这是如何实现的。想学习下关于网站安全的基础知识
基于jsp的网站流量监测模块
jsp 网站流量监测 图表显示 效率优化 传送大量数据
求一段简单的JS代码~~
就2个textbox,textbox1个输入任意数字,textbox2内原有的数字自动减去textbox1内的数字。rn本人没学过这个,赶着用~~rn麻烦给个编译通过的~~rn谢谢各位了!rn
求一段JS代码
我要实现这样的功能,当一个textbox输入完毕后按回车键就跳到另一个指定的textbox去了,以此类推,求JS方法。
一段JS代码含义
下面这个函数是去除数组重复元素的,但中间一步 a= 我怎么都没搞懂是咋回事,高手看看rn[code=JScript]rnfunction unique(data) rn data = data || []; rn var a = ; //这是啥意思rn len = data.length; rn for (var i=0; i
一段JS代码求详解
在一个工程里见到了这么一段代码求详解!rn在此先谢谢!rnvar $ = function(id)return 'string' == typeof id ? document.getElementById(id) : idrnvar $Name = function(name)return document.getElementsByName(name);rnrnvar $AddEvent = function(target, enentType, handle)rnrn if(target.addEventListener) rn target.addEventListener(enentType, handle, false);rn else if(target.attachEvent)rn target.attachEvent('on' + enentType, handle);rn elsern target['on' + enentType] = handle;rnrnrnvar $Bind = function(fun, thisObj)rnrn return function()fun.apply(thisObj, arguments);;rnrnrnvar Request = function(options)rn var xmlHttpRequest;rn tryrn xmlHttpRequest = new XMLHttpRequest();rn catch(e)rn xmlHttpRequest = new ActiveXObject('MSXML2.XMLHTTP');rn rn this.xhr = xmlHttpRequest;rn this.url = options.url || '';rn this.data = options.data || '';rn this.method = options.method || 'post';rn this.onComplete = options.onComplete || function();rnrnrnRequest.prototype = rn send : function()rn this.xhr.open(this.method.toUpperCase(), this.url, true);rn this.xhr.onreadystatechange = $Bind(this.onStateChange, this);rn this.xhr.send(this.data);rn ,rn onStateChange : function()rn if(this.xhr.readyState == 4)rn rn if(this.xhr.status == 200)rn rn this.onComplete(this.xhr.responseText);rn rn rn rn
一段诡异的js代码
如下rn[code=HTML]rnrn rn New Document rn rn rn rn rn rn rn rn rn rn[/code]rn弹出来的居然是0,1rn为什么啊?
高分求一段js代码
[img=H:\Noname.bmp][/img]rn不知道这个图片能否显示的了rnrn我把大概的需求描述一下:图片中[$upcode]$upnamern我是想通过js语言单击某一个节点的时候能够得到它的$upcode和$upname的值,rn但是由于本人js不懂 所以想请php板块中的人们 帮我实现这几句代码rn谢谢rnrnmy example treern [kt]kt图纸rn [Q/TS]企业标准件rn [TSK219E]TSK219E行李车rnrn大体的样子就是上述一种表现形式rn
求一段js代码
垂直滚动的代码?类似于http://www.yobo.com/中的垂直滚动,中间有间歇的。
帮忙改一段JS代码
JS:[code=JScript]var level = 5;rnvar n = level;rnrn//判断该对象是否包含于side_menu中rnfunction isInSideMenu(obj)rnif(n) n--;rnif(obj.getAttribute&&obj.getAttribute("id")=="side_menu")n = level;return true;rnif(obj.nodeType==9)n = level;return false;//超过当前文档树结构时返回falsernelsereturn isInSideMenu(obj.parentNode);rnrnn = level;rnreturn false;rnrn//菜单折叠效果函数rnfunction foldMenu()rnif(this.nextSibling&&this.nextSibling.nextSibling)rnif(this.nextSibling.nextSibling.style.display=="block")rnthis.nextSibling.nextSibling.style.display ="none";rnthis.innerHTML = this.innerHTML.replace("-","+");rnelsernthis.nextSibling.nextSibling.style.display ="block";rnthis.innerHTML = this.innerHTML.replace("+","-");rnrnelsernthis.innerHTML = this.innerHTML.replace("+","-");rnrnrn//初始化树状菜单rnfunction intSideMenu()rnvar as = document.getElementsByTagName("a");rnvar uls = document.getElementsByTagName("ul");rnvar sidemenuUL = document.getElementById("side_menu");rnfor(var i=0;irnrn 新品展示rn rn 新品展示rn rn 高压开关机械特性测试仪 HMGKC-10rn 配电网电容电流测试仪HMPD-500Prn SF6密度综合测试仪HM-60ISASF6rn 柱上真空断路器ZW20A-12型rn rn rnrnrnrnrn[/code]rn能帮我改成点激后栏目不收缩回去~~,谢谢~`
求一段JS代码,谢谢!
有这样一个需求rn 在一个页面中的PAGE_LOAD事件中,我从数据库获取一个时间A, 然后用JS获取当前时间和A做比较,如果大于15分钟,提示用户一些信息。 判断时间要求一直判断(类似于WINFORM的TIMER控件)。rnrn 我然后就这样做。rn 在PAGELOAD事件中 rn Page.ClientScript.RegisterStartupScript(Page.GetType(), "myscript", " ");rnrn 我就写了个测试JS方法rnrn function c(xx)rn rn alert(xx);rn rn rn 出现这样问题,SS到JS那边提示未定义。rnrn 现在求一段实现上边描述的功能的JS,谢谢..!!
帮忙修改一段JS代码
rnrn rn rn jquery图片滑动效果Leftrn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rnrnrn上面这段JS代码是实现图片广告效果,不过现在鼠标移上去或者自动换图片时不能实现想要的效果,想要的效果是鼠标移上去或者自动转换图片时,标题图片能变化,而没有经过的变成原来的样子。rn请大虾帮忙修改一下!
一段特殊的js代码
代码是从clearbox官网上下的,看不懂,请问下面哪一大段eval(……)是什么意思?可不可以“翻译”正常的代码?rn代码见附件
请教一段js代码
下面是一段js代码,用作显示日历代码中的一段,下面的该段是选择显示年份的,可以选择当前年份的前50年和后50年,但为什么要这么写呢?求解释 谢谢rnthis.yearOption = "";rn var yearNow = new Date().getFullYear();rn yearNow = (yearNow <= 1000)? 1000 : ((yearNow >= 9999)? 9999 : yearNow);rn var yearMin = (yearNow - this.yearFall >= 1000) ? yearNow - this.yearFall : 1000;rn var yearMax = (yearNow + this.yearFall <= 9999) ? yearNow + this.yearFall : 9999;rn yearMin = (yearMax == 9999) ? yearMax-this.yearFall*2 : yearMin;rn yearMax = (yearMin == 1000) ? yearMin+this.yearFall*2 : yearMax;
求一段倒计时JS代码
如定义时间为30秒,倒计时到0后,弹出新窗口
一段简单js代码的问题
[code=HTML]rnrnrnrnrnrn rn rn rn rn rn rn rn rn rnrnrnrn[/code]rn[code=JScript]rn function mgoto(index)rn rn var usrcon = document.getElementById("main").childNodes[1];rn rn for (var i = 0; i < usrcon.childNodes.length; ++i)rn if (i == index)rn usrcon.childNodes[i].className = topic;rn elsern usrcon.childNodes[i].className = htopic;rn rn[/code]rn我刚开始接触js,搞不懂为什么这段js代码会报错?求各位解释一下rn
求一段JS代码!
有一个下拉列表框A,一个checkbox,和一个文本筐。rnrn默认checkbox是不选的,下拉列表筐正常,文本筐灰色并不可写入。rn当选择了checkbox后,下拉列表筐为灰色不可用,而文本筐为可用rn再次勾掉checkbox后,恢复到最初状态。rnrn求这段代码!
自适应手机屏幕的一段JS代码
今天,在调网页界面的时候,遇到了一个问题,同样的样式,在一个页面上显示效果挺好,另一个无论是字体还是样式布局,都会显得相对的小。经过查找,发现是一段JS代码在“捣鬼”。附上代码: function resetPage() { var deviceWidth = document.documentElement.clientWidth, scale = deviceWidth/40
一段js代码的问题
rnrnrn(function()rn setTimeout(function()rn if(aIndex > length)rn aIndex = 1;rn rn images[0].src = cases["index"+aIndex];rn links[aBefore-1].className = "";rn links[aIndex-1].className = "hover";rn aBefore = aIndex;rn aIndex++;rn setTimeout(arguments.callee,1500)rn ,1500)rn )()rnrn学习别人的js代码中,看到一些代码片段不是很懂...rn比如上面那一段,有两个setTimeOut,而且两个都是执行的中间的那个方法。个人就觉得是否重复了,rn于是就动手去掉了两个setTimeOut中的任意一个,但是无论去掉哪个...这个方法都不能用了。不知道这里是什么原理。rnrn还有就是这里的callee,不知道为什么我就想到了闭包,这里有没有涉及到闭包呢?rnrnrn
改动一段js代码
[code=JScript]rnSWFUpload.onload = function () rn alert("hello");rn var settings = rn flash_url : "../swfupload/swfupload.swf",rn upload_url: "upload.php",rn post_params: rn "PHPSESSID" : "NONE",rn "HELLO-WORLD" : "Here I Am",rn ".what" : "OKAY"rn ,rn file_size_limit : "100 MB",rn file_types : "*.jpg;*.gif;*.png;*.jpeg;",rn file_types_description : "All Files",rn file_upload_limit : 100,rn file_queue_limit : 0,rn custom_settings : rn progressTarget : "fsUploadProgress",rn cancelButtonId : "btnCancel"rn ,rn debug: false,rnrn // Button Settingsrn button_image_url : "XPButtonUploadText_61x22.png",rn button_placeholder_id : "spanButtonPlaceholder",rn button_width: 61,rn button_height: 22,rnrn // The event handler functions are defined in handlers.jsrn swfupload_loaded_handler : swfUploadLoaded,rn file_queued_handler : fileQueued,rn file_queue_error_handler : fileQueueError,rn file_dialog_complete_handler : fileDialogComplete,rn upload_start_handler : uploadStart,rn upload_progress_handler : uploadProgress,rn upload_error_handler : uploadError,rn upload_success_handler : uploadSuccess,rn upload_complete_handler : uploadComplete,rn queue_complete_handler : queueComplete, // Queue plugin eventrn rn // SWFObject settingsrn minimum_flash_version : "9.0.28",rn swfupload_pre_load_handler : swfUploadPreLoad,rn swfupload_load_failed_handler : swfUploadLoadFailedrn ;rnrn swfu = new SWFUpload(settings);rnrn[/code]rn我希望这个函数在某个radio被选中后触发,假设那个radio的onclick="display( )",该怎样改这段代码?
一段弹出菜单的js代码问题
详情请见:www.ce.net.cn(中企动力官网),rn在中企顶部导航菜单中.当鼠标移动到相应导航条上时,自动弹出相应菜单,移出隐藏菜单,但分析了一下源码.在导航上面并没有见到相应的onmouse事件..rn 请问:我有一网站也要实现这样的功能,但JS水平又很差.请问这个网站中这段JS代码是哪段?怎么实现的.谢谢
请教一段JS代码
1: function C4(s)rn2: var b = Array();rn3: var m = (1 << 8) - 1;rn4: for (var i = 0; i < s.length * 8; i += 8)rn5: b[i>>5]|=(s.charCodeAt(i/8)&m)<<(i % 32);rn6: return b;rn7: rn在IE里执行C4函数没问题,但在.net里用Eval.JScriptEvaluate执行时总提示第5行"参数计数不匹配。"rn这个函数是我从其它网站复制来的rnrn
一段js代码,请指教!
[code=javascript]rnvar param = ;rn$("#obj").find('select,input,textarea').each(function(i,item)rn if(item.id)rn if($(item).val() == null)param[item.id] = "";rn else$(item).val($(item).val().trim());param[item.id] = $(item).val();rn rnrn[/code]rnrn三个问题,请帮忙解释下,不胜感激。rn[b]1[/b].[color=#0000FF]var param = ;[/color] 定义了什么?rn[b]2[/b].[color=#0000FF]item.id[/color] 指的是什么?rn[b]3[/b].[color=#0000FF]param[item.id][/color] 指的是什么?
求助:一段JS代码
求助JS代码:实现查找桌面上的一软件的快捷方式图标的属性并修改,将非常感谢
帮忙解读一段js代码
var name = "The Window";rnrn  var object = rn    name : "My Object",rnrn    getNameFunc : function()rn      return function()rn        return this.name;rn      ;rnrn    rnrn  ;rnrn  alert(object.getNameFunc()());rnrn为什么结果是The Window ?谢谢
求一段简单的JS代码!
我制作了一个FLASH欣赏网站,由于部分FLASH文件很大,下载很慢。现在我想实现这样的效果,就是不直接播放,先在在网页上出现一个“播放”按钮或者文字,用户点击这个按钮后再加载FLASH文件。现在求这样的一段先点击在播放的代码!rn要实现的参考效果如:rnhttp://www.7k7k.com/flash/11903.htmrnhttp://www.yx007.com/list/play_18278.htmrn不过比上两个要简单些,因为SWF地址只有一个。rn
一段js代码的问题!急!!!!
来这里看。rnhttp://community.csdn.net/Expert/topic/3489/3489348.xml?temp=3.916568E-02
求教一段js代码解释
var Class = rn create: function() rn return function() this.init.apply(this, arguments); ;rn rn ;rn var Drag = Class.create();rnrn为什么这么创建对象?求高手释疑
一段简单的js代码
function OutFun()r var i=1;r var fun=function()r alert(i);r return i;r r r r var o=new OutFun();r alert(o.i);r 为什么不是我想要的结果呢? 我想打印1. 问题补充 gtssgtss 写道 i是局部变量。。。。r 具体怎么做呢? 不懂啊
一段JS代码的逻辑问题?
请问这段js代码的逻辑rnrn[code=JScript]rn function regCheck()rn rn //alert("gghgh");rn check_UserName();rn if(!check_UserName_bool || $("text_UserName").value =="")rn rn $("text_UserName").focus();rn return false;rn rn rn alert("通过了啊");rn rn check_UserPWD1();rn if(!check_UserPWD1_bool|| $("text_UserPWD1").value =="")rn rn $("text_UserPWD1").focus();rn return false;rn rn rn check_UserPWD2();rn if(!check_UserPWD2_bool)rn rn $("text_UserPWD2").focus();rn return false;rn rn rn //alert("验证 Email 时:" + check_UserName_bool);rn //check_UserEmail();rn alert("验证时 Email:" + check_UserName_bool);rn if(!check_UserEmail_bool || $("text_UserEmail").value =="")rn rn $("text_UserEmail").focus();rn return false;rn rn alert(" Email 通过了啊");rn check_ValidCode();rn if(!check_ValidCode_bool)rn rn $("text_ValidCode").focus();rn return false;rn rn rn rn rn rn rn[/code]rn为什么我在用的时候,它只检测用户名是否为空??rn下面如果密码,邮箱为空它都不能返回false,而且alert也不会有提示,rn只有第一个alert会提示信息,后面的好像都没用上,难道是程序本身就错了吗??rn求大神!!!给解释。。。。。rn
一段js代码问题。
不懂这段是什么意思? e = e.childNodes || e ; 如果传入的是数组还好理解,但是,传入的是元素呢,怎么遍历其子元素呢?rn代码如下:rnfunction text(e) rn var t = "";rn e = e.childNodes || e ;rn for (var j=0;j
帮忙看一下一段js代码
[code=HTML]rnrn rn rn password checkrn rn rn rn rn rn Your name:rn Password:rn Password repeat:rn rn rn rn rnrn[/code]rn[code=CSS]rninput.invalidrnrn background-color:#FF9;rn border: 2px red inset;rnrnrnlabel.invalidrnrn color:#F00;rnrn[/code]rn[code=JScript]rn/**rn * @author Administratorrn */rnwindow.onload=initForm;rnfunction initForm()rnrn for(var i=0;i-1)//即目标字符串中找到包含invalid的字符rn rn validLabel(thisTag.parentNode);rn thisTag.focus();rn if(thisTag.nodeName=="INPUT")rn rn thisTag.select();rn rn return false;rn rn return true;rn rn function validClass(thisClass)rn rn var classBack="";rn switch(thisClass)rn rn case "":rn case "invalid":rn break;rn case "reqd":rn if(allGood&&thisTag.value=="")classBack="invalid ";rn classBack+=thisClass;rn break;rn default:rn if(allGood&&!crossCheck(thisTag,thisClass))classBack="invalid ";rn classBack+=thisClass;rn rn return classBack;rn rn rn function crossCheck(inTag,otherFieldId)rn rn if(!document.getElementById(otherFieldId))return false;rn return (inTag.value==document.getElementById(otherFieldId).value);rn rn rn function validLabel(parentTag)rn rn if(parentTag.nodeName=="LABEL")rn rn parentTag.className+=" invalid";rn rn rn rnrn[/code]rn问题1:函数validTag、validClass、crossCheck、validLabel为什么要嵌套在validForm中,而不像initForm和validForm之间互相独立?rn问题2:allclasses为什么要拆分后又组合,为什么要多此一举?rn问题3:LABEL为什么要大写, 我试了小写后就没有效果了.
求写一段js代码
求写一段js代码 功能是:rn功能是百度 先匹配[img=https://img-bbs.csdn.net/upload/201406/04/1401857122_926134.jpg][/img]rn例如:rn QString str=ui.lineEdit_js ->text ();rn QVariant ret= m_tabWidget->currentWebView()->webPage()->mainFrame()->evaluateJavaScript(rn QStringLiteral("function findObj() ")+rn QStringLiteral("for(var i=0;i< $('.c-container').length;i++) ")+rn QString (" if( $($('.c-container')[i]).find('.f13').text().indexOf('%1')>=0 )").arg (str)+rn QStringLiteral(" ")+rn QStringLiteral(" return i;")+rn QStringLiteral(" ")+rn QStringLiteral(";")+rn QStringLiteral("return -1;")+rn QStringLiteral(";")+rn QStringLiteral("findObj();")rn );rnrnfind!=-1后 获取上面的超链接的绝对坐标 rn例如:rnX = $('').offset().top;rnY = $('').offset().left;rnrnjs我不懂 但工作要求 谢谢啦
一段非常费解的js代码
rnrn看不懂,请高手解释.rnrn
求一段CheckBox的js代码
一个CheckBox控制所有CheckBox的“全选”“取消全选”的功能,CheckBox用在datagrid中,要求在客户段控制的javascript代码
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件