Internet Explorer中的Javascript错误

时间:2011-02-27 19:07:41

标签: javascript silverlight internet-explorer

我在Internet Explorer中运行的js脚本有问题。

基本上,这个脚本在Firefox中运行良好,但是我需要将它嵌入到silverlight应用程序中的webbrowser控件中,因为它必须在Internet Explorer引擎中无错运行。

在IE中运行它会在以下行中生成“预期对象”错误:

  

$ f(“player”,“player.swf”,{

如何重写它以便在IE中工作?

这是完整的脚本:

      $f("player", "player.swf", {
                key: '#@18a1aaa6552d45a2cfe',
                log: { level: 'debug', filter: 'org.flowplayer.cluster.*' },
            clip: {
            url: 'live3',
            live: true,
            provider: 'rtmp',
            autoBuffer:true,
            bufferLength:10,
            scale:'fit',
            connectionProvider: 'cluster',
            onStart: function(clip){ }
        },
        canvas: {backgroundImage: 'url(staytuned.jpg)'},
        onError:function(err){canvas: {backgroundImage: 'url(taytuned.jpg)'}},
        contextMenu: [  
                'player 1.1',
                {'About  ...' : function() {
                            location.href = "url/?page=aboutus";}},
                {'Contact ...' : function() {
                            location.href = "url/?page=contactus";}},
                {'More Casts ...' : function() {
                            location.href = "url/?page=casts";}},
                        ],
        plugins: {
            overlay:  {
                url: 'overlay.swf',
                    top: 0,
                    right: 0,
                    width: 854,
                    height:450,
                    zIndex:3
                },
                rtmp: {
                url: 'rtmp.swf'
                },  
            cluster: {
                url: 'cluster.swf',
                netConnectionUrl: 'url',
                hosts: [
                    {host:'url'},
                    {host:'url'}
                    ]
                },
            controls: {
                autoHide: false, 
                url:'url',
                zIndex:5
                },

    gatracker: {
        url: "analytics.swf",
        trackingMode: "Bridge",
        bridgeObject: "pageTracker"
    }
}

});

谢谢, 安德烈

2 个答案:

答案 0 :(得分:1)

第一个答案是错误的。有关详细信息,请参阅注释。

修改

问题很可能是在您尝试调用它时未定义$ f。将alert(typeof $f);放在导致错误的行之前的行上。如果它没有提醒function,那么我是对的。

在尝试调用之前,请确保包含包含$ f定义的脚本。

答案 1 :(得分:0)

转到www.jslint.com。将整个脚本粘贴到顶部窗口,然后单击它下面的“jslint”按钮。

你会发现onError格式错误:

onError:function(err){canvas: {backgroundImage: 'url(taytuned.jpg)'}},

它应该更像是:

onError:function(err) {
   var canvas = {backgroundImage: 'url(taytuned.jpg)'};
   return canvas;
},

下面几行有类似的问题。

我怀疑“taytuned.jpg”需要用引号括起来,但这不是我的剧本。