2013-07-28 4 views
0

не может получить следующий тест для работы с Firefox 22.0, когда включен AdBlock Plus. Работает отлично на Chrome +, когда я отключил adblock. Он также работает, когда я загружаю скрипты с помощью тегов скриптов вместо requirejs.soundmanager2.js + require.js не работает с firefox + adblock plus

./index.html:

<!DOCTYPE html> 
<html> 
<head> 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> 

<link rel="stylesheet" type="text/css" href="css/main.css"/> 
<!--<link rel="icon" type="image/png" href="img/icon.png"/>--> 

<!--<script src="js/lib/jquery.js"></script>--> 

<script data-main="js/main" src ="require.js"></script> 
<!-- 
<script src="js/lib/soundmanager2.js"></script> 
<script src="js/test.js"></script> 
--> 

<title></title> 
</head> 


<body> 

<div id="stop" style="cursor:pointer;"> stop</div> 

</body> 


</html> 

./js/main.js: '! HEP'

require.config({ 
    paths:{ 
     jquery:"lib/jquery", 
     underscore:"lib/underscore", 
     soundmanager2:"lib/soundmanager2" 
     /*backbone:"lib/backbone", 
     detectmobilebrowser:"lib/detectmobilebrowser"*/ 
    }, 
    shim: { 
     'underscore': { 
      exports: '_' 
     }, 
     'soundmanager2':{ 
      exports:"soundManager" 
     } 
    } 
}); 


define(['jquery','underscore',"soundmanager2"], 
function($,_,soundManager){  
alert("hep"); 
    window.soundManager=soundManager; 
    soundManager.setup({ 
     url: 'swf', 
     useHTML5Audio:true, 
     preferFlash: false, // prefer 100% HTML5 mode, where both supported 
     onready: function() { 

      alert('SM2 ready!'); 
      /* 
      soundManager.createSound({ 
       id: 'mySound', 
       url: './test/test.mp3', 
       autoLoad: true, 
       autoPlay: false, 
       onload: function() { 
        soundManager.play('mySound'); 
       }, 
       volume: 50 
      }); 
      */ 


     }, 
     ontimeout: function() { 
      alert('SM2 init failed!'); 
     }, 
     defaultOptions: { 
      // set global default volume for all sound objects 
      volume: 100 
     } 
    }); 

    $("#stop").on("click",function(){ 
     alert("stop"); 
     soundManager.stop("mySound"); 
    }); 

    return soundManager; 
}); 

Нет ошибок или что-либо в консоли, никаких предупреждений после этого первоначального один.

ответ

0

Классический узор, борются с какой-то проблемой часами, сдавайтесь и просите о помощи, находите решение сразу после публикации.

добавил

soundManager.beginDelayedInit(); 

после soundManager.setup(), и он работает в настоящее время.

0

Используйте require() метод RequireJS для загрузки модуля. В обратном вызове напишите свой код, что нужно. Обратите внимание, что параметр функции представляет собой массив, содержащий пути, которые загружают зависимости

require.config({ 
paths:{ 
    jquery:"lib/jquery", 
    underscore:"lib/underscore", 
    soundmanager2:"lib/soundmanager2" 
    /*backbone:"lib/backbone", 
    detectmobilebrowser:"lib/detectmobilebrowser"*/ 
}, 
shim: { 
    'underscore': { 
     exports: '_' 
    }, 
    'soundmanager2':{ 
     exports:"soundManager" 
    } 
} 
}); 


require(['jquery','underscore',"soundmanager2"],function($,_,soundManager){  
    alert("hep"); 
    window.soundManager=soundManager; 
    soundManager.setup({ 
     url: 'swf', 
     useHTML5Audio:true, 
    preferFlash: false, // prefer 100% HTML5 mode, where both supported 
    onready: function() { 

     alert('SM2 ready!'); 
     /* 
     soundManager.createSound({ 
      id: 'mySound', 
      url: './test/test.mp3', 
      autoLoad: true, 
      autoPlay: false, 
      onload: function() { 
       soundManager.play('mySound'); 
      }, 
      volume: 50 
     }); 
     */ 


    }, 
    ontimeout: function() { 
     alert('SM2 init failed!'); 
    }, 
    defaultOptions: { 
     // set global default volume for all sound objects 
     volume: 100 
    } 
    }); 

    $("#stop").on("click",function(){ 
     alert("stop"); 
     soundManager.stop("mySound"); 
    }); 


});