我正在尝试使用angular嵌入一个SWF,我在我写的指令中使用了它。
'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 + '" />');
}
});
};
}
};
}]);
上述指令在现代浏览器中运行良好。我似乎无法让它在IE8中工作。 SWF无法加载,我在控制台中收到一条SUPER DESCRIPTIVE错误:
[对象错误]描述:&#34;参数无效。&#34;消息:&#34;无效 。参数&#34;名称:&#34;错误&#34;号码:-2147024809
我找到了这个帖子:"Invalid argument" in IE 8 on jQuery.prepend() on flash objects
谈到IE不喜欢你在已经定义之后更改了对象标签。我一直在努力解决这个问题。有人可以帮忙吗?
答案 0 :(得分:0)
如果是AngularJS 1.3或更高版本,问题可能是框架本身不支持IE8或更早版本: