1

我的 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&amp;channel=esltv_sc2&amp;auto_play=false&amp;start_volume=25&amp;archive_id=484099469&amp;initCallback=onPlayerLoad'>
    </object>
</body>

</html>

它在 JSFiddle 上:http: //jsfiddle.net/77Bpa/

此代码的目的是加载 Twitch 播放器并在加载完成后调用一个函数。应该调用的函数是window.onPlayerLoad,它通过initCallbackflashvar 传递给 flash 对象(参见Twitch Player API)。

因此,在 JSFiddle 上,警报按预期弹出,但是当我在本地打开文件时,没有这样的效果。Firefox 和 Internet Explorer 都说它window.onPlayerLoad存在,但它没有被调用。

这个问题的原因可能是什么?

提前致谢。

4

1 回答 1

0

正如我在评论中所述,问题是闪存没有调用回调,因为某些我不知道的原因 - 与请求它所使用的页面中使用的协议有关。使用 http:// over file:// 解决了这个问题。因此,简单地上传或使用本地主机向播放器请求页面可以正常工作,并且在将 html 文件从本地文件系统加载到浏览器时会失败。

于 2013-12-01T17:37:56.870 回答