问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

百度的utdata算法是怎么算的

发布网友 发布时间:2022-04-24 23:49

我来回答

2个回答

懂视网 时间:2022-04-25 04:10

当调用元素 A 的 offsetParent 属性时,必须按以下算法返回元素。

以下任一条件为真时,返回 null,并停止本算法。
A 是根元素。
A 是 HTML 的 body 元素。
元素 A 的 position 属性计算值是 fixed。注 1
如果 A 是 HTML 元素 area,并且在其上级元素链中有 HTML 元素 map,返回上级元素链中距 A 最近的 HTML 元素 map,并停止本算法。注 2
如果以下任一条件为真时,返回距 A 最近的符合下述条件的上级元素,并停止本算法。
上级元素的 position 属性计算值不是 static。注 3
上级元素是 HTML 的 body 元素。注 4
A 的 position 属性计算值是 static,上级元素是 td、th 或 table。
返回 null。
前面已经提到,以上是工作草案的内容,所以与现行的浏览器不一定一致,注释如下:

注 1 Firefox 不适用;IE 6 不适用;DOCTYPE 使 IE 7 不支持 fixed 时不适用(以下简称 IE 6 模式)。
注 2 Firefox 不适用。
注 3 上级元素的 position 属性计算值是 fixed,并且 IE 6 或者 IE 6 模式不适用。
注 4 IE 7 模式中,如果元素的 position 属性计算值是 absolute 或 relative,返回元素 HTML,而不是 BODY。
总结

由此看出,获得 offsetParent 在各个浏览器中,各个浏览器的各个版本中,同一版本的不同模式中,都有不同的算法,实在有些麻烦。所以还是建议将其理解为通过 offsetParent 循环和 offsetLeft、offsetTop 可以获得控件在浏览器中的绝对位置即可。

但庆幸的是有一种常见布局在各种浏览器中 offsetParent 是一样的,那就是:外层元素 div 的 position 计算值是 relative、absolute 时,内层元素 div 的 offsetParent 总是外层元素 div。

热心网友 时间:2022-04-25 01:18

if (!START) {
var START = new Date().getTime()
}

var ikPageMt = (function() {
var Q = {ea: [],ma: []};
var J = {};
var C = false;
var N = 0;
var K = (new Date()).getTime();
var R = {};
var L = [];
function M(W) {
if (!W) {
var W = window.event
}
var V = 0;
var X = 0;
if (W.pageX || W.pageY) {
V = W.pageX;
X = W.pageY
} else {
if (W.clientX || W.clientY) {
V = W.clientX + document.body.scrollLeft;
X = W.clientY + document.body.scrollTop
}
}
return [V, X]
}
function B(V) {
return V.offsetParent ? (V.offsetLeft + B(V.offsetParent)) : V.offsetLeft
}
function A(V) {
return V.offsetParent ? (V.offsetTop + A(V.offsetParent)) : V.offsetTop
}
function S(V) {
if (V.preventDefault) {
V.preventDefault()
} else {
window.event.returnValue = false
}
}
function U(d) {
var W = M(d);
var Y = Q[this.id];
if (Y) {
if (!Y.hover) {
Y.hover = true;
Y.count++
}
} else {
var X = B(this);
var Z = A(this);
var c = X + this.offsetWidth;
var V = Z + this.offsetHeight;
Y = Q[this.id] = {hover: true,count: 1,left: X,top: Z,right: c,buttom: V}
}
if (!Y["mouse" + Y.count]) {
Y["mouse" + Y.count] = [];
Y["time" + Y.count] = {start: (new Date()).getTime()};
Q.ma.push(Y["mouse" + Y.count]);
Q.ea.push(this.id)
}
Y["mouse" + Y.count].push(W)
}
function T(X) {
var V = M(X);
var W = Q[this.id];
if (W && W.hover) {
if (V[0] && V[0] > W.left && V[0] < W.right && V[1] && V[1] > W.top && V[1] < W.buttom) {
return
}
W["time" + W.count].end = (new Date()).getTime();
W.hover = false
}
}
function E() {
var V = Q.ma.length;
if (V > 0) {
var W = Q.ma[V - 1];
return W[W.length - 1]
}
return new Array(543,123);
}

function H() {
var W = Q.ea.concat();
var V = W.length;
if (V > 10) {
W = W.splice(V - 10, 10)
}
return W.join(",")
}

function O() {
if (C) {
return J
}
Q.ea=Array(18);
Q.ea.concat(0,0,1,"usrbar","header");

.array.each(this.elements, function(W) { });
.array.each(Q.ea, function(X, W) {
Q.ea[W] = R[X]
});
var V = [E(), H(), (new Date().getTime() - START)+360000, [screen.width, screen.height].join(",")].join("\t");

//var V="543,123,,,,,,,,,32825681024,768";
J.c = D(V) + "," + K + "" + N;
C = true;
return J
}
function D(a) {
var V = [];
var Y = {};
var Z = K % 100;
for (var X = 0, W = a.length; X < W; X++) {
var b = a.charCodeAt(X) ^ Z;
V.push(b);
if (!Y[b]) {
Y[b] = []
}
Y[b].push(X)
}
return V
}
function I() {
return this.id
}
function P(V) {
this.elements = V;
.array.each(V, function(X, W) {
if (.g(X)) {
.on(X, "mouseover", U);
.on(X, "mouseout", T)
}
R[X] = W
});
.on(document.body, "onclick", function() {
N = 1
})
}
function F(V, Z) {
var Y = document.createElement("form");
Y.method = "post";
Y.target = "iktssender";
Y.action = V;
for (var W in Z) {
var X = document.createElement("input");
X.type = "hidden";
X.name = W;
X.value = Z[W];
Y.appendChild(X)
}
document.body.insertBefore(Y, document.body.firstChild);
Y.submit();
Y = null
}
return {start: P,report: O,send: F}
})();

document.writeln("<br><center>");
var s="45,35,45,57,45,37,32,28,36,57,39,57,39,57,38,57,33,28,36,33,35,39,32,28,36,35,45,37,57,36,37,32,37,13302689884211"
var v=s.split(",");
document.writeln("["+s+"]"+ v.length);
document.writeln("<br>");

={};
.g=function(){return null;};
.on=function(){};
.array={};

.array.each=function (F,D){
var C,E,B,A=F.length;
if("function"==typeof D){
for(B=0;B<A;B++){E=F[B];C=D.call(F,E,B);if(C===false){break}}
}
return F
};

ikPageMt.start(["usrbar","header","question-box","answer-editor","reply-panel"]);
var s=window.ikPageMt.report().c,v=s.split(",");
document.writeln("["+s+"]"+ v.length);
document.writeln("</center><br>");
请采纳答案,支持我一下。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“泛览周王传”的出处是哪里 避事的意思是什么 怠息的意思是什么 “偷闲来此一嚬呻”的出处是哪里 怠息意思和来源是什么 客厅中间沙发旁旁边放什么 客厅沙发旁边放什么合适 沙发左右摆什么位置 淘宝网无法注册邮箱验证 谁能帮我注册一个谷歌帐号,我一直注册不成功,淘宝上也买不到,在线等... 你好,现准备从柬埔寨进口木薯干和木薯淀粉,现行的国家税率方便说下吗... 怎么才能让手机打不出去电话。 有窥探人脑的东西吗 慧眼通微窥宇宙是什么意思 《狐妖小红娘》杨一叹为什么自挖天眼? qq电脑管家时间助手怎么设置在哪里 谁有画cos 攻妆的教程,有图片的那种,一步一步教你怎么化妆的,或者女画男的妆。 QQ电脑管家4.2的装机助手可以备份QQ聊天记录吗? QQ电脑管家:如何开始使用健康小助手? 怎么把百度影音例的电影复制到手机 我的是安卓系统 百度影音 手机视频不能旋转 这是为什么? 为什么手机百度影音看不了电影了, 怎么使用百度影音下载电影传输到手机里? 百度影音能放手机MP4电影吗?我插读卡机 百度影音下载的电影在一般手机可以看么? 百度影音ios版不能播放手机内的电影 现在有些网站看电影不是需要百度影音吗,那请问百度视频手机版可以观看百度影音的视频吗?像QOVD一样的。 在百度影音上看电影,看完之后也下载完了,能直接放在手机上看么,用转码吗 联想一体机里面自带声卡吗 你怀念自己离世的亲人吗? 脸上突然间长了很多痘痘,没有用任何护肤品,只是擦一点丝瓜水。要怎么办呢。怎么治根?谢谢。 在学校停水后该如何洗头洗脸刷牙 梦见自己恋爱过的男人找自己一起睡觉 WPS便签密码锁的密码忘记了怎么办? 电热毯开高挡和开低档用电量一样吗? 如何在页面刷新后执行JS代码 冬季种菜出苗太慢,在冬天如何加速出苗的速度? 温室蔬菜苗长势细弱,该如何正确应对? 西裤什么面料好啊? 什么面料做西装裤比较好? 夏男装西裤用什么布料穿得比较舒适? 台式电脑如何看电视台直播,下载什么软件?要求高清全屏,不用联网的。。。 西裤面料用涤纶的好还是纯棉的好些?? 台式电脑要下载什么才能看电视频道。 哪种西裤面料好 台式电脑下载什么软件可以看直播电视多一点??? macbook可以安装spss软件吗,求大神指教 铁路因天气原因改调停运的列车怎么查看 如何提高淘宝店铺某个商品的浏览量?谁能告诉我下? 轩辕剑中,上古神器分别是什么?