簡體   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