gpt4 book ai didi

google-chrome - Chrome 扩展程序中的 SWFobject - API 不可用

转载 作者:行者123 更新时间:2023-12-04 12:59:44 25 4
gpt4 key购买 nike

你好!
我正在构建一个 Chrome 扩展,我需要在后台页面中嵌入一个 SWFobject。
除了 SWFobject 和 eventListener 的 JavaScript 控件之外,一切正常。
我的猜测是它与跨域策略有关,因为在网络服务器上测试页面时一切正常。

无论如何,这是一个片段:

在主页:

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();
};
}

事件监听器 :
soundcloud.addEventListener('onMediaEnd', playerNext);

function onYouTubePlayerReady(player) {
player.addEventListener("onStateChange", "function(state){ if(state == 0) { playerNext(); } }");
}

在控制台中它抛出

"Uncaught TypeError: Object # has no method 'pauseVideo'"



两个 Youtube 都嵌入了 Soundcloud 一个。

另外, 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'
}
);
}
}

很抱歉这篇冗长的帖子,我想提供尽可能多的信息。
另外,我知道代码不漂亮,这只是我的第二个应用程序 ;)

非常感谢任何可以提供帮助的人,
贾科莫

最佳答案

你可以看看this extension , 你不能在 chrome 扩展中访问本地连接,但你可以运行一个内容脚本作为代理脚本。(你可以在 gae 或任何其他免费服务器上提供代理页面)

关于google-chrome - Chrome 扩展程序中的 SWFobject - API 不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com