<script type="text/javascript">
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
麻烦大神们说得详细点
怎么去理解这一段JS?
答案:2 悬赏:30 手机版
解决时间 2021-02-20 16:12
- 提问者网友:风月客
- 2021-02-19 16:46
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-02-19 17:10
< script type = "text/javascript" >
// 预先加载图片
function MM_preloadImages() { //v3.0
var d = document;
// document.images存在的话
if (d.images) {
// 清空d.MM_p数组
if (!d.MM_p) d.MM_p = new Array();
// 位序和数组长度
var i, j = d.MM_p.length,
// 参数表
a = MM_preloadImages.arguments;
// 对传入的参数循环
for (i = 0; i < a.length; i++)
// 如果传入的当前参数不是以#开头的
if (a[i].indexOf("#") != 0) {
// 存入Image对象
d.MM_p[j] = new Image;
// 以当前参数作为Image对象的src
d.MM_p[j++].src = a[i];
}
}
}
function MM_swapImgRestore() { //v3.0
var i, x, a = document.MM_sr;
// 迭代document.MM_sr
for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
// 复制src
x.src = x.oSrc;
}
function MM_findObj(n, d) { //v4.01
var p, i, x;
// 取d=document
if (!d) d = document;
// 如果"?"存在于n内 并且不在第一位 而且父窗口的frames大于0
if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
// 取父窗口下面的名字为"n的第p位以后的字符串"的frames
d = parent.frames[n.substring(p + 1)].document;
// 从0到p位截取n
n = n.substring(0, p);
}
// document[n]存在并且d.all存在 x为d.all[n]
if (! (x = d[n]) && d.all)
x = d.all[n];
// 迭代document.forms x为d.forms[i][n] 第i个form的第n-1个;
for (i = 0; ! x && i < d.forms.length; i++)
x = d.forms[i][n];
// 迭代document.layers
for (i = 0; ! x && d.layers && i < d.layers.length; i++)
// 查找特定对象
x = MM_findObj(n, d.layers[i].document);
// x取id为n的对象
if (!x && d.getElementById)
x = d.getElementById(n);
return x;
}
function MM_swapImage() { //v3.0
var i, j = 0,
x, a = MM_swapImage.arguments;
document.MM_sr = new Array;
// 定义特定的规则 如何交换图片
for (i = 0; i < (a.length - 2); i += 3)
if ((x = MM_findObj(a[i])) != null) {
document.MM_sr[j++] = x;
if (!x.oSrc) x.oSrc = x.src;
x.src = a[i + 2];
}
} < /script>/从代码大致来看应该是实现了一个二维图片矩阵
然后每次打乱里面的内容 实现矩阵内的图片变换换位置
// 预先加载图片
function MM_preloadImages() { //v3.0
var d = document;
// document.images存在的话
if (d.images) {
// 清空d.MM_p数组
if (!d.MM_p) d.MM_p = new Array();
// 位序和数组长度
var i, j = d.MM_p.length,
// 参数表
a = MM_preloadImages.arguments;
// 对传入的参数循环
for (i = 0; i < a.length; i++)
// 如果传入的当前参数不是以#开头的
if (a[i].indexOf("#") != 0) {
// 存入Image对象
d.MM_p[j] = new Image;
// 以当前参数作为Image对象的src
d.MM_p[j++].src = a[i];
}
}
}
function MM_swapImgRestore() { //v3.0
var i, x, a = document.MM_sr;
// 迭代document.MM_sr
for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
// 复制src
x.src = x.oSrc;
}
function MM_findObj(n, d) { //v4.01
var p, i, x;
// 取d=document
if (!d) d = document;
// 如果"?"存在于n内 并且不在第一位 而且父窗口的frames大于0
if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
// 取父窗口下面的名字为"n的第p位以后的字符串"的frames
d = parent.frames[n.substring(p + 1)].document;
// 从0到p位截取n
n = n.substring(0, p);
}
// document[n]存在并且d.all存在 x为d.all[n]
if (! (x = d[n]) && d.all)
x = d.all[n];
// 迭代document.forms x为d.forms[i][n] 第i个form的第n-1个;
for (i = 0; ! x && i < d.forms.length; i++)
x = d.forms[i][n];
// 迭代document.layers
for (i = 0; ! x && d.layers && i < d.layers.length; i++)
// 查找特定对象
x = MM_findObj(n, d.layers[i].document);
// x取id为n的对象
if (!x && d.getElementById)
x = d.getElementById(n);
return x;
}
function MM_swapImage() { //v3.0
var i, j = 0,
x, a = MM_swapImage.arguments;
document.MM_sr = new Array;
// 定义特定的规则 如何交换图片
for (i = 0; i < (a.length - 2); i += 3)
if ((x = MM_findObj(a[i])) != null) {
document.MM_sr[j++] = x;
if (!x.oSrc) x.oSrc = x.src;
x.src = a[i + 2];
}
} < /script>/从代码大致来看应该是实现了一个二维图片矩阵
然后每次打乱里面的内容 实现矩阵内的图片变换换位置
全部回答
- 1楼网友:零点过十分
- 2021-02-19 17:20
结束的条件就是j = document.getelementbyid(listname+"_"+i) 取不到对象的时候.
这时 j == undefined, 循环就结束了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯