我在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"
}
}
});
谢谢, 安德烈
答案 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”需要用引号括起来,但这不是我的剧本。