2015-09-23 4 views
1

У меня есть эта функция яваскрипт для предварительной загрузки изображений:Ошибка в preloadImages() функция

function preloadImages() { 
    var images = []; 

    function preload() { 
     for(var i = 0; i < preload.arguments.list; i++) { 
      images[i] = new Image(); 
      images[i].src = preload.arguments[i]; 
     } 
    } 

    preload(
     "../img/innovation_1_hover.jpg", 
     "../img/innovation_2_hover.jpg", 
     "../img/innovation_3_hover.jpg", 
     "../img/innovation_4_hover.jpg", 
     "../img/innovation_5_hover.jpg" 
    ); 
} 
preloadImages(); 

, но я получаю сообщение об ошибке:

Uncaught TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context.

enter image description here

Что случилось? Как я могу это исправить? Для справки, я использую Chrome.

+0

замените .list на .length –

+0

с '.length', ошибка остается прежней. – Heidel

ответ

0

заменить вашу

preload.arguments.list
с
arguments.length

function preloadImages() 
{ 
    var images = []; 
    function preload() 
    { 

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

      images[i] = new Image(); 
      images[i].src = preload.arguments[i]; 
      console.log(images[i]); // for testing 
     } 
    } 
    preload(
     "../img/innovation_1_hover.jpg", 
     "../img/innovation_2_hover.jpg", 
     "../img/innovation_3_hover.jpg", 
     "../img/innovation_4_hover.jpg", 
     "../img/innovation_5_hover.jpg" 
    ); 
} 
preloadImages(); 
+0

В этом случае я получаю ту же ошибку в новом месте http://i.imgur.com/5bNsFAJ.png – Heidel

+0

, но он работает, если я пишу 'images [i] .src = arguments [i];' вместо из 'images [i] .src = preload.arguments [i];' – Heidel

0

Try Thispreload.arguments.length является правильный код

function preloadImages() { 
    var images = []; 

    function preload() { 
     for(var i = 0; i < preload.arguments.length; i++) { 
      images[i] = new Image(); 
      images[i].src = preload.arguments[i]; 
     } 
    } 

    preload(
     "../img/innovation_1_hover.jpg", 
     "../img/innovation_2_hover.jpg", 
     "../img/innovation_3_hover.jpg", 
     "../img/innovation_4_hover.jpg", 
     "../img/innovation_5_hover.jpg" 
    ); 
} 
preloadImages(); 
0

Вы также можете попробовать это ..

function preloader() { 
    if (document.images) { 
     var img1 = new Image(); 
     var img2 = new Image(); 
     var img3 = new Image(); 

     img1.src = "../img/innovation_1_hover.jpg"; 
     img2.src = "../img/innovation_2_hover.jpg"; 
     img3.src = "../img/innovation_3_hover.jpg"; 
    } 
} 
function addLoadEvent(func) { 
    var oldonload = window.onload; 
    if (typeof window.onload != 'function') { 
     window.onload = func; 
    } else { 
     window.onload = function() { 
      if (oldonload) { 
       oldonload(); 
      } 
      func(); 
     } 
    } 
} 
addLoadEvent(preloader); 
Смежные вопросы