Javascript IE8的角嵌入SWF
我正在尝试使用angular嵌入一个SWF,我在我编写的指令中使用了angularJavascript IE8的角嵌入SWF,javascript,angularjs,flash,Javascript,Angularjs,Flash,我正在尝试使用angular嵌入一个SWF,我在我编写的指令中使用了angular 'use strict'; angular.module('flash-embed', []).directive('flashEmbed', [function() { return { restrict: 'A', replace: true, template: ['', '<object data="{{ src }}" type="application/x
'use strict';
angular.module('flash-embed', []).directive('flashEmbed', [function()
{
return {
restrict: 'A',
replace: true,
template: ['',
'<object data="{{ src }}" type="application/x-shockwave-flash">',
'<param name="movie" value="{{ src }}" />',
'<param name="allowscriptaccess" value="always" />',
'<param name="allowfullscreen" value="true" />',
'</object>'
].join(''),
scope: {
width:'@',
height:'@',
src: '@',
path:'@',
wmode:'@'
},
compile: function(elem, attrs, transcludeFn)
{
return function link (scope, element, attrs)
{
scope.$watch('path', function(path)
{
if (path)
{
if (!attrs.wmode) attrs.wmode = 'transparent';
element.append('<param name="flashvars" value="path=' + attrs.path + '" />');
element.append('<param name="wmode" value="' + attrs.wmode + '" />');
}
});
};
}
};
}]);
“严格使用”;
角度.module('flash-embed',[])指令('flashmbed',[function()
{
返回{
限制:“A”,
替换:正确,
模板:['',
'',
'',
'',
'',
''
].加入(“”),
范围:{
宽度:“@”,
高度:“@”,
src:“@”,
路径:“@”,
wmode:“@”
},
编译:函数(elem、attrs、transcludeFn)
{
返回函数链接(范围、元素、属性)
{
范围$watch('path',函数(path)
{
如果(路径)
{
如果(!attrs.wmode)attrs.wmode='透明';
元素。追加(“”);
元素。追加(“”);
}
});
};
}
};
}]);
上面的指令在现代浏览器中非常有效。但我似乎无法在IE8中实现这一点。SWF没有加载,我在控制台中得到一个超级描述错误,它说:
[对象错误]说明:“参数无效。”消息:“无效
参数。“名称:“错误”编号:-2147024809
我发现了这个线索:
这说明IE不喜欢在对象标记被定义之后更改它。我半天都在努力解决这个问题。有人能帮忙吗?如果是AngularJS 1.3或更高版本,问题可能是框架本身不支持IE8或更早版本:
我知道这一部分,所以我使用angular 1.2.9,谢谢。我应该说明的