我有一个嵌入swfobject的简单页面。
看起来像IE在嵌入式对象上的“过滤器”属性有问题。
我的测试页面看起来像这样:IE重新加载嵌入swfobject页面时抛出'未指定的错误'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script type="text/javascript" src="../scripts/swfobject.js"></script>
<script type="text/javascript" src="../scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
var url = "";
$(function()
{
var flashvars = {};
var parameters = {};
var attributes = {};
flashvars["data-file"] = url;
parameters.wmode = "transparent";
swfobject.embedSWF("test.swf", "graph1", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, parameters, attributes);
});
</script>
<style type="text/css">
#graph1
{
margin:30px;
height: 400px;
width: 600px;
}
</style>
</head>
<body>
<div id="graph1"></div>
</body>
</html>
注:的test.swf
文件是从download page一个SWFObject的包。
现在,当我重新加载页面时,它会在IE上引发'未指定的错误',但不会在Firefox中将其filters属性设置为undefined
。
,似乎会导致错误的代码是在swfobject.js V2.2(行494-504):
/*! SWFObject v2.2 <http://code.google.com/p/swfobject/>
is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
function removeObjectInIE(id) {
var obj = getElementById(id);
if (obj) {
for (var i in obj) {
if (typeof obj[i] == "function") {
obj[i] = null; // when (i == 'filters') we get the error
}
}
obj.parentNode.removeChild(obj);
}
}
没有人有任何想法,为什么这可能发生?
我现在的解决方案是一致的。我不喜欢它。无论如何感谢:) – kfiroo 2010-11-14 23:48:46
是的,当然这是更多的化妆品,而不是一个真正的bugfix。 – 2010-11-15 06:55:08