繁体   English   中英

IE8的JavaScript无效参数错误

[英]JavaScript invalid argument error with IE8

IE8在此循环中最后一条语句的字符9处给我一个invalid argument错误(字符9是icon变量的第一个字母。):

var JOB_STATUS_ICON_DISTANCE = 125;
var JOB_STATUS_ICON = {};
var center = parseInt($('#job-status-window').css('width')) / 2;
var jobStatusIcons = ['A', 'B', 'C', 'D', 'E'];

for (var i=0; i<jobStatusIcons.length; i++) {
    var name = jobStatusIcons[i];
    var icon = document.getElementById('job-status-' + name);
    var width = icon.naturalWidth;
    var centerPoint = (center-(width/2));

    JOB_STATUS_ICON[name+'Center'] = centerPoint;
    JOB_STATUS_ICON[name+'Left']   = centerPoint - JOB_STATUS_ICON_DISTANCE;
    JOB_STATUS_ICON[name+'Right']  = centerPoint + JOB_STATUS_ICON_DISTANCE;
    JOB_STATUS_ICON[name] = $('#job-status-'+name);

    icon.style.left = JOB_STATUS_ICON[name+'Right'] + 'px';  // error here...
}

谁能告诉我为什么? 这在现代浏览器中可以正常工作。

仅在某些情况下,这是为了监视进行中的作业的状态(5个步骤)。 我正在跟踪5张图片在JOB_STATUS_ICONS中的位置。 每个图像从右侧滑入到中心位置,在作业的那一部分正在处理时停留在该位置,然后向左滑出。 上面的代码只是一些优化,用于建立每个图像的左,中和右位置(它们都是不同的宽度)。

循环中导致问题的最后一行是设置图像的初始位置。

这可能是由于IE8不支持从其中计算centerPointnaturalWidth属性引起的。

var width = icon.naturalWidth;
var centerPoint = (center-(width/2));

这是杰克·摩尔(Jack Moore)编写的一小段Javascript,可在IElt8中模拟naturalWidth

function getNatural (DOMelement) {
    var img = new Image();
    img.src = DOMelement.src;
    return {width: img.width, height: img.height};
  }

资料来源: http : //www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM