привет!
Я создаю расширение хрома, в котором мне нужно встроить SWFObject на странице фона.
Все работает, кроме JavaScript Controls для SWFObject и EventListeners.
Я предполагаю, что у него есть что делать с междоменными политиками, потому что во время тестирования страницы на веб-сервере все работало нормально.
В любом случае, вот фрагмент:
на главной странице:
var playerView = chrome.extension.getBackgroundPage();
$('#playerPause').click(function(){
playerView.playerPause();
});
на заднем плане:
function playerPause() {
if (postData[nowPlaying].provider == 'youtube' ) {
player.pauseVideo();
}
else if (postData[nowPlaying].provider == 'soundcloud' ) {
player.api_pause();
};
}
и EventListeners :
soundcloud.addEventListener('onMediaEnd', playerNext);
function onYouTubePlayerReady(player) {
player.addEventListener("onStateChange", "function(state){ if(state == 0) { playerNext(); } }");
}
в консоли, которая бросает
» Типерр: Объект # не имеет метода «Пасвидео»
для обоих YouTube встроить SoundCloud One.
Кроме того, SWFObject встроен, как это ( и работает ):
function loadTrack (id) {
if(postData[id].provider == 'youtube') {
swfobject.embedSWF(
"http://www.youtube.com/e/" + postData[id].url + "?enablejsapi=1&playerapiid=player",
"player",
"1",
"1",
"8",
null,
{
autoplay: 1
},
{
allowScriptAccess: "always"
},
{
id: "player"
}
);
}
else if(postData[id].provider == 'soundcloud') {
swfobject.embedSWF(
'http://player.soundcloud.com/player.swf',
'player',
'1',
'1',
'9.0.0',
'expressInstall.swf',
{
enable_api: true,
object_id: 'player',
url: postData[id].url,
auto_play: true
},
{
allowscriptaccess: 'always'
},
{
id: 'player',
name: 'player'
}
);
}
}
извините за длительный пост, я хотел обеспечить как можно больше информации.
Кроме того, я знаю, что код не красиво, это было только мое второе приложение;)
Спасибо заранее, к всем, кто может помочь,
Giacomo