我的JavaScript似乎有点问题:它在JSFiddle上按预期工作,但在从本地.html
文件打开时却没有。
这是我硬盘上的代码:
<html>
<head>
<script type='text/javascript'>
window.onPlayerLoad = function () {
alert("test");
};
</script>
</head>
<body>
<object bgcolor='#000000' data='http://www.twitch.tv/widgets/archive_embed_player.swf' height='378' id='clip_embed_player_flash' type='application/x-shockwave-flash' width='620'>
<param name='movie' value='http://www.twitch.tv/widgets/archive_embed_player.swf'>
<param name='allowScriptAccess' value='always'>
<param name='allowNetworking' value='all'>
<param name='allowFullScreen' value='true'>
<param name='flashvars' value='title=IEM%2BSingapore&channel=esltv_sc2&auto_play=false&start_volume=25&archive_id=484099469&initCallback=onPlayerLoad'>
</object>
</body>
</html>
这里是JSFiddle:http://jsfiddle.net/77Bpa/。
此代码的目的是加载Twitch播放器并在完成加载后调用函数。应该调用的函数是window.onPlayerLoad
,它通过initCallback
flashvar传递给flash对象(参见Twitch Player API)。
因此,在JSFiddle上,警报按预期弹出,但是当我在本地打开文件时没有这样的效果。 Firefox和Internet Explorer都说window.onPlayerLoad
存在,但它没有被调用。
这个问题的原因可能是什么?
提前致谢。
答案 0 :(得分:0)
正如我的评论中所述,问题是闪存不会调用回调,因为我知道某些原因 - 与在其使用的页面请求中使用的协议有关。使用http:// over file://解决了这个问题。因此,只需上传或使用本地主机向播放器请求页面就可以正常工作,并且在将html文件从本地文件系统加载到浏览器时会失败。