gpt4 book ai didi

javascript - 究竟是什么阻止了该脚本在 IE8 中运行? (IE8问题)

转载 作者:行者123 更新时间:2023-11-28 08:58:25 24 4
gpt4 key购买 nike

javascript 不是我的强项,我找到了一个导航脚本,其设计完全符合我想要的方式(下面的 Jsfiddle),但我无法让它与 IE8(有史以来最好的浏览器)一起使用讽刺 )。

请帮忙!

http://jsfiddle.net/JSjY4/1/

window.onload = function () {
var fine = [36, 34, 34, 34];
var mitms = document.getElementsByClassName('mitm');
var l0 = (mitms[0].offsetLeft + fine[0]);
document.getElementById("nav_arrow").style.marginLeft = l0 + "px";

for (var i = 0; i < mitms.length; i++) {

mitms[i].fine = fine[i];

mitms[i].onclick = function() {
arr(this);
var tmp = document.getElementsByClassName('mitm');


}
}

};

function arr(el) {
var mitms = document.getElementsByClassName('mitm');
var l = el.offsetLeft + el.fine;
document.getElementById("nav_arrow").style.marginLeft = l + "px";
}

最佳答案

您不应使用 default 作为变量名称,因为它是 reserved 。只需使用不同的名称即可。

来自 documentation (7.6.1.1 关键字),

The following tokens are ECMAScript keywords and may not be used as Identifiers in ECMAScript programs:
break, do, instanceof, typeof, case else, new, var, catch, finally, return, void, continue, for, switch, while, debugger, function, this, with, default, if, throw, delete, in, try

编辑:正如@CrazyTrain所说,不支持document.getElementsByClassName。您可以用这样的垫片替换它:

function getElementsByClassName(needle) {
var my_array = document.getElementsByTagName("*");
var retvalue = new Array();
var i;
var j;
for (i=0,j=0;i<my_array.length;i++) {
var c = " " + my_array[i].className + " ";
if (c.indexOf(" " + needle + " ") != -1) retvalue[j++] = my_array[i];
}
return retvalue;
}

你会这样称呼:

var mitms = getElementsByClassName('mitm');

关于javascript - 究竟是什么阻止了该脚本在 IE8 中运行? (IE8问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18115438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com